Laravel UNION ALL не работает с оператором where

Я хочу получить две очереди в одну.

$buildings_queue=IngameBuildingQueue::where(DB::raw('UNIX_TIMESTAMP(`start_time` + `duration`)'),'<=',time());
$recruit_queue=IngameRecruitQueue::where(DB::raw('UNIX_TIMESTAMP(`start_time` + `duration`)'),'<=',time());
$queue=$buildings_queue->unionAll($recruit_queue);
dd($queue->toSql());

Laravel бросить:

[ErrorException] Неопределенное свойство: Illuminate \ Database \ Eloquent \ Builder :: $ bindings

но когда я удаляю where() методы все работает отлично.

Как я могу это исправить?

3

Решение

Согласно руководству пользователя Laravel это должно работать

IngameRecruitQueue::where(DB::raw('UNIX_TIMESTAMP(`start_time` + `duration`)'),'<=',time())->union($buildings_queue)->get();

Также попробуйте записать свои переменные в соглашении camelCase

$ buildings_queue будет $ buildingsQueue

проверьте этот ответ, чтобы узнать больше: https://softwareengineering.stackexchange.com/a/196463

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]