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前端网发表,如需转载,请注明页面地址。
code前端网
