Как использовать AND в laravel запрос к базе данных - PullRequest
0 голосов
/ 13 января 2020
$konten = Konten::all()->where('kategori','Announcement' AND 'kategori','Activities')->sortByDesc('id');

Это не работает. Каков правильный запрос для использования AND Logi c в запросе, сэр? мне очень жаль, что у меня нет особых знаний, чтобы выяснить способ ... смысл в том, что я хочу, чтобы $ konten содержал строку из Konten, где категория "Объявления и действия" ... как это сделать? это просто показывает, где kategori является действиями объявление не прошло ..

Ответы [ 4 ]

0 голосов
/ 13 января 2020

У меня есть сильное чувство, что вы, вероятно, ищете условие 'orWhere' ... Если вы хотите, чтобы ВСЕ записи, когда столбец kategori равнялся «Объявление», и все записи, когда kategori равнялся «Деятельности», вы должны использовать предложение orWhere следующим образом:

$konten = Konten::where('kategori', 'Announcement')
->orWhere('kategori', 'Activities')
->orderBy('id', 'desc')
->get();

Или, как указано в ответах ниже, вы можете использовать инструкцию whereIn.

0 голосов
/ 13 января 2020

Чтобы набрать AND в Laravel, вы просто объединяете ->where() вызовы:

$konten = Konten::where('kategori','Announcement')->where('kategori','Activities') ...

В качестве примечания, Konten::all() возвращает Collection и больше не является базой данных. логи c. Вы не должны вызывать ::all(), если вам не нужны все записи в базе данных.

Рефакторинг:

$konten = Konten::where('kategori','Announcement')
->where('kategori','Activities')
->orderBy('id', 'desc')
->get();

Это будет использовать базу данных для выполнения фильтрации / упорядочения, вместо того, чтобы выгружать каждую запись в Collection и позволять PHP выполнять тот же лог c, который может быть невероятно неэффективным в зависимости от количества записей.

0 голосов
/ 13 января 2020

попробуйте это:

$konten = Konten::whereIn('kategori', ['Announcement', 'Activities'])->orderBy('id', 'desc')->get();
0 голосов
/ 13 января 2020

Вы можете соединить несколько where для достижения AND:

$konten = Konten::where('kategori', 'Announcement')
    ->where('kategori', 'Activities')
    ->orderBy('id', 'desc')
    ->get();

Или использовать whereIn, например:

$konten = Konten::whereIn('kategori', ['Announcement', 'Activities'])
    ->orderBy('id', 'desc')
    ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...