关键点:闭包
模型:
public function getCollect()
{
return $this->belongsTo('App\Components\Misc\Models\CollectCareerTalk', 'id', 'career_talk_id');
}
public function otherMethod()
{
return $this->belongsTo('App\Components\Misc\Models\OtherMethodModel', '主键', '外键');
}
仓库:
$this->model->with(['getCollect' => function ($q) use ($user_id) {
$q->where('user_id', $user_id);
},
'otherMethod'])
->select('id', 'title')
->where([
'id' => 1
])
->first();
注意:with可以连多个表(数组形式传参),没有动态条件的,可以直接讲模型方法名写到with的参数中,有动态条件的,写到闭包中
本文探讨了在模型加载过程中使用闭包实现动态条件过滤的方法,通过具体代码示例,展示了如何在PHP的Eloquent ORM中,利用闭包对关联模型进行条件筛选,实现更灵活的数据查询。
152

被折叠的 条评论
为什么被折叠?



