Laravel mysqli 连接 2 列并更改列名

Laravel mysqli connect 2 columns and change column name

我有 2 个表要连接

table1:
id
name
table2_id

table_2:
id
name

table1 与 table2 连接

当我尝试 select table1 和来自 table2 的连接行时它起作用了,但是因为行名 id 和 name 相同,它覆盖了 table1 的值。

如何连接表 1 和表 2 并在 laravel:

中获得包含这些行的表 1
id
name
table2_id
table2_name

查看有关关系的 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(); 
}