Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Нашел то ли баг, то ли фичу.
Я постил тут вопрос - Подскажите как можно организовать сложный запрос.
И поскольку ответа пока нет, ищу решение. И решил попробовать через union. Создал два запроса
$q2 = DB::table('...')
...
->orderBy(..., ...);
и
$q1 = DB::table('...')
...
->orderBy(..., ...)
->union($q2)
->paginate(10);
И все бы не плохо, с начало выводит все по запросу q1, а затем q2. Но есть одно НО orderBy ни в первом, ни во втором случае не работает. Вывод идет по мере размещения данных в таблице.
Кто сталкивался? Это баг или фичя?
Не в сети
Попробуйте поменять приоритет
$q1 = DB::table('...')
...
->union($q2)
->orderBy(..., ...)
->paginate(10);
If you think it’s expensive to hire a professional to do the job, wait until you hire an amateur.
Не в сети
Попробуйте поменять приоритет
$q1 = DB::table('...') ... ->union($q2) ->orderBy(..., ...) ->paginate(10);
Спасибо за ответ, но увы.
Если сделать так, то вылит ошибка
Syntax error or access violation: 1250 Table '...' from one of the SELECTs cannot be used in global ORDER clause
Возможно придется ставить костыль.
Все равно спасибо )
Не в сети