Laravel 5.4雄辩地使用和

时间:2017-05-24 16:12:24

标签: laravel laravel-5

我想获取数据,如果连接表不为空,所以我做这样的查询

 $projects = Project::
            with(array('owner'=> function($query) use ($request){
                $query->where('owner_id',$request->input('owner_id'));
            }))->with('plans')->get();

我获得所有项目的所有项目,如果不是null和计划,但是,我想得到项目,如果所有者不为空

enter image description here

所以如果所有者为null我想要不得到项目我想得到null []。

如何解决此问题并感谢

1 个答案:

答案 0 :(得分:2)

使用has()代替with()

Project::has('owner')->with('plans')->get();

此查询将加载拥有所有者并计划的所有项目。

如果您只想加载指定所有者的项目,请改用whereHas()

Project::whereHas('owner', function ($q) use ($request) {
        $q->where('owner_id', $request->owner_id);
    })
    ->with('plans')
    ->get();