如何使用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){})
->where('user_id','=',$user_id)
->get();
但是使用
太混乱了使用模型是否有更好的替代方法来使用此查询。
答案 0 :(得分:3)
您必须加入表格才能执行此操作。
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();
然而,如果您使用Eloquent,更好的方法是创建关系。可以在此处找到相关文档:https://laravel.com/docs/5.4/eloquent-relationships
答案 1 :(得分:0)
最好是因为你完全在拉拉维拉斯,以利用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();