У меня есть сценарий 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]);
Приведенный выше скрипт тоже работает отлично, если он не может автоматически разбирать нумерацию страниц.
так как я должен был сделать это, чтобы получить правильный результат, и это могло бы также разобрать нумерацию страниц?
Я не знаю, почему вы используете 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]);
Других решений пока нет …