выберите из подзапроса с объединением и разбиением на страницы в laravel

У меня есть сценарий MySql, который отлично работает при запуске на нативном PHP.

SELECT * FROM (
(SELECT * FROM news WHERE ctg = 'Promotion' and active = '1' ORDER BY id)
UNION ALL
(SELECT * FROM news WHERE ctg ='Info' ORDER BY id)
) AS hasil
ORDER BY id DESC

В настоящее время я учусь делать это красноречивым способом. Вот сценарий:

$promo  = DB::select("SELECT * FROM (
(SELECT * FROM news WHERE ctg = 'Promotion' and active = '1' ORDER BY id)
UNION ALL
(SELECT * FROM news WHERE ctg ='Info' ORDER BY id)
) AS hasil
ORDER BY id DESC ");
return view('news', ['promo' => $promo]);

Приведенный выше скрипт тоже работает отлично, если он не может автоматически разбирать нумерацию страниц.

так как я должен был сделать это, чтобы получить правильный результат, и это могло бы также разобрать нумерацию страниц?

0

Решение

Я не знаю, почему вы используете Union в этом случае результаты кажутся такими же, как OR условие, попробуйте это с News модель

$promo = News::where(function($query){
$query->where('ctg', '=', 'Promotion')
->where('active', '=', '1');
})
->orWhere('ctg', '=', 'info')
->orderBy('id', 'DESC')
->paginate(10);
return view('news', ['promo' => $promo]);
1

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector