Php laravel 5.4如何编写从多表查询中选择
我如何使用laravel 5.4 编写sql查询以从多个表中获取以下查询的数据Php laravel 5.4如何编写从多表查询中选择,php,mysql,laravel,laravel-5,laravel-5.4,Php,Mysql,Laravel,Laravel 5,Laravel 5.4,我如何使用laravel 5.4 编写sql查询以从多个表中获取以下查询的数据 select l.party_id,l.container_id,p.party_name from `tbl_container_lease` l, `tbl_partys` p where l.`party_id` = p.`id` and l.`user_id` = 5 现在我用这个 Containerlease::whereHas('getpartys',function($q){}) ->whe
select l.party_id,l.container_id,p.party_name from
`tbl_container_lease` l, `tbl_partys` p
where l.`party_id` = p.`id` and l.`user_id` = 5
现在我用这个
Containerlease::whereHas('getpartys',function($q){})
->where('user_id','=',$user_id)
->get();
但它变得太混乱,无法使用
是否有更好的方法通过使用model.来使用此查询?您必须连接表才能执行此操作
Containerlease::join('tbl_partys', 'tbl_partys.id', '=', 'tbl_container_lease.party_id')
->where('tbl_container_lease.user_id', 5)
->select('tbl_partys.*', 'tbl_container_lease.*');
->get();
然而,如果你使用雄辩的语言,更好的方法是建立关系。这里可以找到这方面的文档:最好是利用laravel关系,因为毕竟你在laravel 确保您有一个派对模型:
php artisan make:model Party
假设一个租约有一方,则在集装箱租约模型中添加:
public function party(){
return $this->hasOne('App\Party', 'id', 'party_id');
}
然后访问您的模型
ContainerLease::with('party')->where('user_id', '=', 5)->get();
,可以删除函数($q){}
。