【发布时间】:2016-04-29 14:22:38
【问题描述】:
我有三张桌子。 work_orders、customers 和 aircraft。在work_orders 表中有两个字段customer_id 和aircraft_id。我正在尝试通过使用join 来检索customers 和aircraft 数据。我收到了一系列错误,但它们似乎都指向同一个方向,那就是找不到表。
这是我的WorkOrderController index:
public function index(WorkOrder $workorder)
{
$workorder_array = $workorder
->join('work_orders as work', 'work.aircraft_id', '=', 'aircraft.id')
->join('work_orders as workorder', 'workorder.customer_id', '=', 'customers.id')
->select('work_orders.opened_date', 'customers.mobile', 'aircraft.year')
->get();
return view('work-orders.index', compact('workorder_array'));
}
我得到以下错误:
SQLSTATE[42S22]:未找到列:1054 'on 子句'中的未知列'aircraft.id'(SQL:从
work_orders内部连接work中选择work_orders。opened_dateonaircraft.id=work.aircraft_id内连接work_orders为workorderworkorder.customer_id=customers.id)
我已尝试将 work.aircraft_id 与 aircraft.id 切换,因为 Laravel 文档按此顺序显示它,但这也没有任何区别。摆脱此错误的唯一方法是删除我的 join 语句。
【问题讨论】:
-
您可以打开控制台并运行此 sql 查询,如果您收到错误检查表和数据库中的字段,您可以尝试获取正确的查询。对不起我的英语。
-
只是好奇:
aircraft不应该是aircrafts吗?因为,Laravel 使用蛇形大小写约定来命名表。除非您已将表名明确指定为aircraft.. -
我指定它是飞机,因为那是飞机的复数形式。我一直在网站上的其他地方访问该表。
标签: php mysql laravel-5.1