首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Laravel系列4.4】模型Eloquent ORM的使用(二)

    集合操作 其实这个集合操作并不是模型特有的,还记得在 查询构造器 中,我们查询列表的时候,总会在最后加一个 toArray() 吗?...而另外一个 map() 函数就不用多说了,之前我们说过,Laravel 的 PDO 在默认查询构造器的情况下,走的是 PDO::FETCH_OBJ ,获得的集合结果中的每个数据都是一个 stdClass...在所有模型都要继承的 laravel/framework/src/Illuminate/Database/Eloquent/Model.php 类中,我们很快就能发现一个 query() 静态方法。...而不是我们之前 查询构造器 中的 laravel/framework/src/Illuminate/Database/Query/Builder.php 对象。...但 Eloquent\Builder 的内部持有的一个query 属性依然是 Query\Builder 对象,也就是说在底层,它依然是调用的我们熟悉的那个 查询构造器 来进行工作的。

    2.8K20

    【Laravel系列4.2】查询构造器

    在这里还需要注意的是,链式调用每个函数方法的返回值哦,只有返回的是 Builder 对象的才可以不停地链式哈,get()、toArray()、find() 之后可不能再继续链式了,因为它们返回的是结果对象...直接通过编辑器的跳转功能点击 update() 方法就会跳转到 laravel/framework/src/Illuminate/Database/Query/Builder.php 的 update(...这个就要一步一步来看了,前面其实我们已经看到了 laravel/framework/src/Illuminate/Database/Query/Builder.php 这个对象的类文件,那么我们是怎么通过...use Illuminate\Database\Query\Builder as QueryBuilder; // laravel/framework/src/Illuminate/Database/...// laravel/framework/src/Illuminate/Database/Query/Builder.php public function from($table, $as = null

    16.8K10

    Laravel源码解析之Model

    的数据操作分两种 – DB facade – Eloquent ORM 它们除了有各自的特色外,基本的数据操作都是通过 Illuminate\Database\Query\Builder 调用方法去完成整个...这个文件在你项目目录中的 vendor/laravel/framework/src/Illuminate/Database/Query 下,你可以自行去查看。...$parameters); } 去调用,这个方法最终以 new Builder() 而告终, public function newEloquentBuilder($query) { return...new Builder($query); } 最后我们到了 Illuminate\Database\Eloquent\Builder 文件下,这个类中涵盖了ORM的基本操作,例如find , findOrFail...如果你在代码用到了get方法,抱歉,这里没有,它依旧会通过__call 方法将你的请求转发到 Illuminate\Database\Query\Builder 类中 $this->query->{$method

    1.1K30

    3分钟短文:Laravel模型作用域,为你“节省”更多代码

    laravel模型为我们提供了一层数据库操作层,将数据交互独立出来。 但是久而久之,随着项目的需求不断扩大,最常用的查询操作,同样会有大量的冗余代码。...$builder) { $builder->where('published', '=', 1); }); } 这样SQL语句 where published = 1 就会追加到所有的模型查询方法内...而声明一个本地作用域,只要遵循laravel的语法规定即可,如下示例: public function scopePublished($query) { return $query->where('published..., $zip) { return $query->where('zip', $zip); } 按照位置传入即可。...我们再声明一个本地作用域方法: public function scopeAttendees($query, $maximum) { return $query->where('max_attendees

    1.4K22

    基于 Redis + 资源库模式实现 Laravel 应用缓存功能

    今天学院君来给大家演示如何在 Laravel 项目中基于 Redis 实现应用缓存功能,这想必也是很多人日常使用 Redis 最多的业务场景,这里的缓存指的是将数据库查询结果存储到 Redis,其目的是将数据加载从磁盘...正如前面所说,现在我们可以在资源库 PostRepo 这一层对数据库查询结果进行缓存,而不需要调整任何控制器代码。...(如果缓存项是对象,则通过 unserialize 方法对其做反序列化操作再返回); 若缓存项不存在,则先通过数据库查询获取结果,然后基于 Redis 的 SETEX 指令将其存储到 Redis(如果待缓存项是对象...,则通过 serialize 方法将其序列化为文本字符串,这里使用 SETEX 指令的原因是需要设置缓存过期时间),再返回数据库查询结果。...你可以到 Redis 命令行客户端去查看对应的缓存数据: 使用 Laravel 自带的缓存组件 当然,在 Laravel 项目中,如果使用 Redis 作为缓存存储器的话,推荐使用自带的缓存组件,在配置好

    2.5K10
    领券