首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Laravel系列4.1】连接数据库与原生查询

    Laravel 框架中的 DB 和 ORM 是两个不同的组件,关于 ORM 的概念,我们也将在相关的学习中了解到,但是现在我们先从简单的普通查询学起。...从 options 这个参数里面,我们可以看出,Laravel 默认使用的是 PDO 连接的数据库,我也没有研究在 Laravel 中如何使用 mysqli 进行连接,因为 PDO 确实已经是事实的连库标准了...SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '', `sex` int(11) NOT NULL DEFAULT '0', PRIMARY...我们在审阅查看代码时,按照标准的规范写,不需要详细的看语句,就可以通过方法名快速地知道这段数据库操作是要干什么,这不是非常好的一件事嘛。...而且我们会发现,Laravel 只能使用 PDO ,无法使用 MySQLi 来进行数据库操作。

    4.4K50

    通过Eloquent实现Repository模式

    设计模式,可以去之前的文章查看:orm 系列 之 常用设计模式 我们可以看到Model中混合了各种模式,这就要求使用者在使用的时候清楚的知道怎么使用,这里的清楚知道怎么用是指根据SOILD原则,优雅的使用...($count = 10); public function save(MemberInterface $member); } The Eloquent Member Repository Implementation...此处还注意到一个问题,我们此时使用的posts是表示relation,但是之前是member的一个字段,明显冲突了,我们需要修改字段名,从posts到post_count,因为我们之前使用了常量来定义属性...,因此只需要下面一行代码就解决问题了: const ATTR_POST_COUNT = ‘post_count’; 总结 介绍了这么多,我们解决了一个核心问题:因为Eloquent的功能耦合,我们应该正确的使用它...参考 Separation of Concerns with Laravel’s Eloquent Part 1: An Introduction

    94330

    牛哇,PHP这个开发框架真的好香!

    重点先学会应用增删改查 1.环境配置 前提:lavarel框架要对应php的版本,否则就有可能报错误~ 名称 版本号 Laravel 7.30.6 PHP 7.4.13 Composer 2.5.8...## 使用composer 创建一个为laravel-demo项目 composer create-project --prefer-dist laravel/laravel laravel-demo..."; }); 浏览器访问:http://127.0.0.1:8000/home/index 4.一些错误处理 lavarel框架要对应php的版本,否则就有一系列的错误~ composer无法安装依赖包...开启路由服务 注意: 路由访问控制器时,应该打开app/Provides/RouteServiceProvider.php 中的路由服务 protected $namespace = 'App\\Http...9.laravel进行增删改查 member表 CREATE TABLE `member` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar

    1.8K20

    orm 系列 之 Eloquent演化历程2

    当访问 commentable 关联时,ORM 根据commentable_type 字段来判断所属模型的类型并返回相应模型实例。...让我们跟着git继续追踪吧_ 新纪元 为了解决PHP组件管理及散步的问题,2009年的php|tek大会上成立了PHP-FIG组织,目的在于透过三个方式来制定PHP社群在开发组件时的规范,laravel...此处为什么会出现Manager,当项目变复杂后,我们很难简单的和Eloquent的内部的组件进行有效的功能了,这个时候需要一个项目的门面,帮助我们和外界沟通,让外界尽可能简单的使用Eloquent,于是就出现了...Manager,记得网上搜索过关键字Using Eloquent outside Laravel,我们可以看到一篇Vivek Kumar Bansal写的文章,文章从2方面介绍了怎么使用Eloquent...参考 [ Laravel 5.3 文档 ] Eloquent ORM —— 关联关系

    3.4K30

    CVE-2021-39165: 从一个Laravel SQL注入漏洞开始的Bug Bounty之旅

    测试的过程就不说了,经过测试,我获取了下面的结果: 当第一个参数key可控时,传入任意字符串都会报错,具体的错误为“unknown column”,但类似反引号、双引号这样的定界符将会被转义,所以无法逃逸出...那么,再回看where函数的参数列表: public function where($column, $operator = null, $value = null, $boolean = 'and')...当时的ThinkPHP注入是我在乌云乃至安全圈站稳脚跟的一批漏洞,它开创了使用数组进行框架ORM注入的先河,其影响和其后续类似的漏洞也一直持续到今天。...遗憾的是,Laravel的这个问题是出现在where()的第一个参数,官方并不认为这是框架的问题。 0x04 SQL注入利用 回到Cachet。...rcrowe/twigbridge用于在Laravel和Twig之间建立一个桥梁,让Laravel框架可以直接使用twig模板引擎。

    2.3K20

    Redis 分布式锁在 Laravel 任务调度底层实现中的应用

    命令 $schedule->command('inspire')->hourly(); // 每天调度一次回调函数清理日志 $schedule->call(function (...2>&1 该任务每分钟调度一次,执行的是上述定义调度任务的 Laravel 项目提供的 Artisan 命令 schedule:run,并且将标准输出和错误都重定向到空设备文件(即丢掉的意思,如果你想将输出记录下来...,可以将 /dev/null 调整为对应的日志文件路径,或者你还可以为每个 Laravel 调度任务设置单独的日志输出),该命令最终运行的正是上述 App\Console\Kernel 的 schedule...Laravel 任务调度的入口代码 可以看到,Laravel 调度任务的基本使用非常简单,下面我们来看看它的底层是如何实现的,以及这与我们所要介绍的 Redis 分布式锁又有何关联。...CacheEventMutex: public function __construct($timezone = null) { ...

    6.8K21

    orm 系列 之 Eloquent演化历程1

    Eloquent Eloquent是laravel中的orm,采取的是active record的设计模式,里面的对象不仅包括领域逻辑,还包括了数据库操作,但是大家平时使用的时候可能没有探究eloquent...,所以讲的不错误的地方,恳请大牛们能指出,或者如果你有什么地方是没看懂的,也请指出问题来,因为可能那地方就是我自己没看懂,所以没讲明白,也请提出来,然后我们一起讨论的,让我们能共同的进步的。...先看HasOne,即OneToOne的关系,看代码 public function hasOne($related, $foreignKey = null) { $foreignKey = $foreignKey...instance->newQuery(), $this, $foreignKey); } 我们看到当调用Model的hasOne方法后,返回是一个HasOne,即Relation,当我们调用Relation的方法时,...通过魔术方法__call,将其委托给了Eloquent\Builder, public function __call($method, $parameters) { if (method_exists

    1.5K30

    Laravel5.2之PHP重载(overloading)

    说明:本文主要讲述PHP中重载概念,由于Laravel框架中经常使用这块知识点,并且PHP的重载概念又与其他OOP语言如JAVA中重载概念不一样,故复习并记录相关知识点。...4、同样的,魔术方法__unset()当使用unset()方法时触发: class Person { private $sex; public function __set($name,...Laravel中方法重载使用 在使用Laravel的Facade这种模式时,是通过Facade帮我们代理从容器Container中取出所需要的服务Service,就不需要通过$app['config']...使用其他的Facade获取其他Service也是这样的过程。 总结:基本学习了PHP的重载知识后,对使用Laravel的Facade这个方式来获取服务时有了更深入的了解。...总之,多多使用Laravel来做一些东西和多多学习Laravel源码并模仿之,也是一件有趣的事情。

    3.6K31

    从零开始学Laravel

    这里使用了ilanyu大佬提供的本地反向代理激活方法,或者自己手撸一个反代程序,不过比较麻烦的是每次打开IDE都需要进行授权认证,因此本地激活的IDE每次运行都需要启动一次反代程序,有条件最好挂在云服务器上...不过有条件还是要支持正版~ Laravel教程使用碰到的一些坑 vagrant下composer create-project laravel/laravel Laravel --prefer-dist..., function ($name = null){ return 'name '. $name; }); Route::get('user/{id}/{name?}'...); 这样就会重定向到 user/1/profile; 路由群组 这个相比django就比较代码上繁琐了,但是逻辑还是很好的 //此处为前缀群组 Route::group(['prefix' => 'member...world', function(){ return 'world'; }); }); 这个时候想显示hello时就不能直接访问hello,要访问member/hello

    1.7K10
    领券