Laravel mysqli连接2列并更改列名称

时间:2016-11-24 13:20:07

标签: laravel connect

我有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

1 个答案:

答案 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(); 
}