在laravel中使用with实现动态添加where条件

时间:2022-08-29 17:21:51

关键点:闭包

模型:

?
1
2
3
4
5
6
7
8
9
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', '主键', '外键');
   }

仓库:

?
1
2
3
4
5
6
7
8
9
$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的参数中,有动态条件的,写到闭包中

以上这篇在laravel中使用with实现动态添加where条件就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/tclzsn7456/article/details/83785589