выберите из подзапроса с объединением и разбивкой на страницы - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть сценарий 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]);

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

1 Ответ

0 голосов
/ 08 ноября 2018

Я не знаю, почему вы используете 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]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...