Laravel ORM 中你不知道的炫酷操作
append
class User extends Model { protected $appends = ['is_adult']; public function getIsAdultAttribute() { return $this->attribute['age'] > 18; } }
这个操作你都用过吗?将数据库中不存在的字段添加到模型中非常方便。但 $appends 是全局的,并且 is_adult 字段将添加到所有搜索中。
User::select('id', 'name')->first();
这样问的时候甚至会报age字段不存在的错误信息。
当您这样询问时,我们可以将 is_adult 添加到搜索结果集中。
$user = User::first(); $user->append('is_adult');
你以为这就结束了吗?不仅如此,如果我们要求更多用户怎么办?我们要再次循环append吗?不,不,我们优雅的 Laravel 已经为我们想到了这一点。
$user = User::paginate(10); $user->each->append('is_adult');
查询
User::where('sex', 'girl')->where('age', '<=', 20)->where('money', '>', 1000000000000)->get();
您经常写这种类型的查询吗?发现问题了吗?能找到有钱的洛丽塔是相当难得的,所以还没有人问过我。
我怎么忍心?只要稍微重写一下,在前面加上查询,你就可以轻松娶到有钱的萝莉,走上人生巅峰。
哪里
如果你找不到有钱的萝莉,请降低你的要求,认真找个女朋友。虽然有点困难,但如果你知道她的ID,就可以用
User::query()->find(2);
找到她,又快又简单。如果不知道ID只知道名字怎么办?条件写在哪里?让我告诉你一个更快的方法。毕竟,你迫不及待地想找个女朋友。
User::query()->firstWhere(['name' => '乔碧萝']);
我会先写很多关于这个的内容,稍后当我发现其他很酷的做法时我会更新它。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。