php - 未找到列 : 1054 Unknown column - Laravel 5. 1 加入

标签 php mysql laravel-5.1

我有三张 table 。 工作订单客户飞机。在 work_orders 表中,有两个字段 customer_idaircraft_id。我正在尝试通过使用 join 检索 customersaircraft 数据。我收到一系列错误,但它们似乎都指向同一个方向,那就是找不到表。

这是我的WorkOrderController索引:

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 语句。

最佳答案

我在 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'));
}

关于php - 未找到列 : 1054 Unknown column - Laravel 5. 1 加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34955951/

相关文章:

php - 从多个选择查询设置多个变量值时出错

mysql - Inner Join 或 WHERE 子句中的 AND 语句之间的区别

php - 使用 php 和 jquery 将输入从表单插入到数据库

php - Laravel 5.1 - 尝试使用 Auth Boilerplate 作为 API 来防止 302 URL 重定向

javascript - 无法阻止提交的表单刷新页面

php - 使用 PHP 安装 Nginx

php - Doctrine2 不可变实体和仅附加数据结构

php - mysql_num_rows 替换推荐?

mysql - MariaDB 左连接未返回预期结果

php - Laravel Spark 无法正确引入 css