我有2个表要连接
table1:
id
name
table2_id
table_2:
id
name
table1与table2
连接当我尝试从table2中选择table1和连接的行时,它可以工作,但由于行名称id和name相同,它会覆盖table1的值。
如何将table1与table2连接,并在laravel中获取包含此行的table1:
id
name
table2_id
table2_name
答案 0 :(得分:1)
查看关于人际关系的laravel文档 - 如果按照此处列出的https://laravel.com/docs/5.3/eloquent-relationships设置模型,您将能够像以下一样调用table2:
$result = Table1::find(1)->table2;
但是,要获得您想要的结果,您可以使用->select(
功能
DB::table('users')->select('name', 'email as user_email')->get();
https://laravel.com/docs/5.2/queries#selects
像这样的东西
public function scopetable1($query,$id){
return $query = DB::table('table1')
->select('table1.id as id','table1.name as name','table2.id as table2_id', 'table2.name as table2_name' )
->where('table1.id', '=', $id)
->leftJoin('table2', 'table1.table2_id', '=', 'table2.id')
->get();
}