SQLSTATE [23000]:完整性约束违规:1052 order order中的'created_at'列不明确Laravel 5.5

问题描述 投票:1回答:2

我只是不知道我的代码有什么问题以及它为什么会产生这个错误

SQLSTATE [23000]:完整性约束违规:1052订单子句中的'created_at'列不明确(SQL:select * from processes inner join bags on processes.bag_id = bags.id其中bags.type = Recyclable and date(processes.created_at) = 2018-09-18 00:00:00由created_at desc limit 1)订购,这是我的代码

$bag = Bagcollect::join('bags', 'bagcollects.bag_id', '=', 'bags.id')
        ->select('bags.type')
        ->where('bagcollects.bag_id', $request->input('bag_id'))
        ->first();

   //this query produce error
    $processexist = Process::join('bags', 'processes.bag_id', '=', 'bags.id')
        ->where('bags.type', $bag->type)
        ->whereDate('processes.created_at', Carbon::today())
        ->latest()
        ->first();
php mysql laravel laravel-5.5
2个回答
3
投票

您需要在latest()中指定完整列。 latest('process.created_at')或使用latest()而不是使用自定义orderBy。


0
投票

那是因为你从两个表中查询'created_at'列。您必须指定所需的所有列,例如:

$processexist = Process::join('bags', 'processes.bag_id', '=', 'bags.id')
        ->select('bags.column1', 'bags.columns2')
        ->where('bags.type', $bag->type)
        ->whereDate('processes.created_at', Carbon::today())
        ->latest()
        ->first();
© www.soinside.com 2019 - 2024. All rights reserved.