2016-01-22 36 views
0

我有三張表。 work_orders,customersaircraft。在work_orders表中有兩個字段customer_idaircraft_id。我試圖通過使用join檢索customersaircraft數據。我遇到了一系列的錯誤,但它們似乎都指向相同的方向,那就是無法找到表。未找到列:1054未知列 - Laravel 5.1加入

這是我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]: Column not found: 1054 Unknown column 'aircraft.id' in 'on clause' (SQL: select work_orders . opened_date from work_orders inner join work_orders as work on aircraft . id = work . aircraft_id inner join work_orders as workorder on workorder . customer_id = customers . id)

我試着開關work.aircraft_idaircraft.id,因爲Laravel文檔顯示它的順序,但這也沒有任何區別。我可以擺脫這個錯誤的唯一方法是刪除我的join陳述。

+1

您可以打開控制檯,並運行該SQL查詢,如果你得到錯誤檢查你在現場,你的表和數據庫,以後你可以嘗試得到正確的查詢。對不起我的英語不好。 – Naumov

+1

只是好奇:不應該'飛機'假設是'飛機'?因爲,Laravel使用蛇案例約定來命名錶格。除非你明確指定表名爲'aircraft' .. –

+0

我已經指定它是飛機,因爲那是飛機的複數。我一直在從該網站上的其他地方訪問該表。 –

回答

0

我在join聲明中有錯誤的表格。這是我應該有:

public function index(WorkOrder $workorder) 
{ 
    $workorder_array = $workorder 
     ->join('aircraft', 'work_orders.aircraft_id', '=', 'aircraft.id') 
     ->join('customers', 'work_orders.customer_id', '=', 'customers.id') 
     ->select('*') 
     ->get(); 

    return view('work-orders.index', compact('workorder_array')); 
} 
相關問題