总结要点:本地作用域的使用,数据排序
本地作用域
让我们可以定义通用的约束集合,以便复用
例如,对于一个公用,大家都可以看到的列表,需要对其中的数据进行排序,例如,按照回复时间进行排序。由于这个排序的约束,对每一个用户,请求都是一样的,可以使用一个通用的约束,而不需要每次都新建一个
定义本地作用域
- 为模型想好一个约束方法的名字,例如
recent
- 根据约定,创建一个本地作用域,只需要直接在约束方法名字前面加上
scope
前缀,即scoptRecent
, 同时,这个方法接受一个查询构建器$query
作为参数,通过不断的链式调用,完善$query
中的参数,达到约束的作用,最后将它返回,即返回一个查询构造器- 这里对参数的
$query
的解释,是我自己猜的,感觉好像说的过去,先这样理解 - 如果有同学看到了,请辩证地看,有错误的地方请指出
- 这里对参数的
使用本地作用域
- 在对应的 Controller 调用,调用时,并不需要带上
scope
前缀,即调用recent
即可
教程中的调用有所不同,因为教程通过一个
scopeWithOrder
来作为入口,并根据 URI 中的order
参数再去调用真正的排序方法
推荐文章: