我有这个查询
$sales = Sales::join('customer', 'customer.id', '=', 'sales.customer_id')
->join('cashier', 'cashier.id', '=', 'sales.cashier_id')
->first();
我如何选择带有前缀的每个表,以便我可以这样调用:
通过上面的查询,我只得到一个名称行,因为每个表都有相同的列名
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
最佳答案
答案是你不能那样做。我通常只使用相同的列名作为别名,其余的则使用 *
.所以您需要为所有相同的列名设置别名以解决冲突
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();
关于laravel 5.1 eloquent select 带有前缀连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37650183/