我使用以下代码连接控制器中的两个表
$clientdata = DB::table('clients')
->join('users', 'clients.id', '=', 'users.id')->get();
在刀片中:
@foreach($clientdata as $clientdata)
<td>{{$clientdata->first_name(client)}}</td>
<td>{{$clientdata->last_name(client)}}</td>
<td>{{$clientdata->first_name(users)}}</td>
<td>{{$clientdata->last_name(users)}}</td>
@endforeach
但是我的两个表客户端和用户都包含与first_name
和last_name
同名的列,我想访问两个客户端表和用户的first_name
和last_name
表,我该怎么做呢
答案 0 :(得分:0)
你可以做到
$clientdata = DB::table('clients')
->join('users', 'clients.id', '=', 'users.id')
->select(
'users.first_name as users_first_name',
'users.last_name as users_last_name',
'clients.first_name as clients_first_name',
'clients.last_name as clients_last_name',
)
->get();
在您的刀片文件中:
@foreach($clientdata as $data)
<td>{{$data->users_first_name}}</td>
<td>{{$data->users_last_name}}</td>
<td>{{$data->clients_first_name}}</td>
<td>{{$data->clients_last_name}}</td>
@endforeach
答案 1 :(得分:0)
试试此代码
DB::table('clients') ->join('users', 'clients.id', '=', 'users.id')->select('clients*', DB::raw('clients as client_name'))->get();
答案 2 :(得分:0)
我总是使用此解决方案
一个懒惰:)(如果列数很高)
我选择了两个表(table。*)中的所有列,并为我的歧义列添加了别名(table.ambiguous_1 AS别名)
示例
$clientdata = DB::table('clients')
->join('users', 'clients.id', '=', 'users.id')
->select(
'users.*',
'clients.*',
'users.first_name AS users_first_name',
'users.last_name AS users_last_name',
'clients.first_name AS clients_first_name',
'clients.last_name AS clients_last_name',
)
->get();
在刀片服务器中,我为歧义列使用别名,而在其他列中使用原始列名称。