scope 前缀开头的方法

举报
lxw1844912514 发表于 2022/03/27 02:04:54 2022/03/27
【摘要】 https://learnku.com/docs/laravel/5.6/eloquent/1403 本地范围 本地范围允许定义通用的约束集合以便在应用中复用。 例如, 你可能经常需要获取「受欢迎的」用户。要定义这样一个范围,只需要在对应的 Eloquent 模型方法前加入 scope 前缀。 作用...

https://learnku.com/docs/laravel/5.6/eloquent/1403

本地范围

本地范围允许定义通用的约束集合以便在应用中复用。 例如, 你可能经常需要获取「受欢迎的」用户。要定义这样一个范围,只需要在对应的 Eloquent 模型方法前加入 scope 前缀。

作用域总是返回一个查询构造器实例:


    
  1. <?php
  2. namespace App;
  3. use Illuminate\Database\Eloquent\Model;
  4. class User extends Model
  5. {
  6. /**
  7. * 只查询受欢迎的用户.
  8. *
  9. * @param \Illuminate\Database\Eloquent\Builder $query
  10. * @return \Illuminate\Database\Eloquent\Builder
  11. */
  12. public function scopePopular($query)
  13. {
  14. return $query->where('votes', '>', 100);
  15. }
  16. /**
  17. * 只查询 active 的用户.
  18. *
  19. * @param \Illuminate\Database\Eloquent\Builder $query
  20. * @return \Illuminate\Database\Eloquent\Builder
  21. */
  22. public function scopeActive($query)
  23. {
  24. return $query->where('active', 1);
  25. }
  26. }

利用本地范围

一旦定义范围。就可以在模型查询的时候调用范围方法。在方法调用时你不需要添加 scope 前缀。你甚至可以链式调用不同的范围, 例如:

$users = App\User::popular()->active()->orderBy('created_at')->get();

   

  

文章来源: blog.csdn.net,作者:lxw1844912514,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/lxw1844912514/article/details/100029315

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。