laravel 5.1 eloquent select 带有前缀连接表

mar*_*ndt 4 select prefix laravel eloquent

我有这个查询

$sales = Sales::join('customer', 'customer.id', '=', 'sales.customer_id')
->join('cashier', 'cashier.id', '=', 'sales.cashier_id')
->first();
Run Code Online (Sandbox Code Playgroud)

我如何选择带有前缀的每个表,以便我可以这样调用:

  • $order->customer_name
  • $订单->收银员姓名

以上我的查询,我只得到一个名字行,因为每个表都有相同的列名name,我想是每个表我打电话想给前缀customer_cashier_sales_

更新

我期望的结果是这样的

customer_name
customer_address
customer_phone
cashier_name
cashier_another_column
cashier_another_column2
sales_date
sales_another_column
sales_another_column2
Run Code Online (Sandbox Code Playgroud)

Vio*_*ica 7

答案是你不能那样做。我通常只使用相同的列名作为别名,其余的使用*. 所以您需要为所有相同的列名设置别名以解决冲突

Sales::join('customer', 'customer.id', '=', 'sales.customer_id')
->join('cashier', 'cashier.id', '=', 'sales.cashier_id')
->select(['*', 'customer.name as customer_name', 'cashier.name as cashier_name'])
->get();
Run Code Online (Sandbox Code Playgroud)