Laravel - возвращает все сообщения, кроме некоторых сообщений с условием


Laravel - возвращает все сообщения, кроме некоторых сообщений с условием

21.09.2020 12:15:24 Просмотров 20 Источник

я хочу получить сообщения, но не тот пост с определенным ключевым значением

я использую приведенный ниже код для получения моих сообщений

$col = Post::where('type', $type)->whereNotIn('restrict', ['res1'])->orderBy('id', 'desc')->paginate(24);

это работа, но она также не возвращает сообщения с нулевым значением ограничения

как я получаю сообщения, кроме некоторых тем с ограниченным значением ключа == 'res1' ?

У вопроса есть решение - Посмотреть?

Ответы - Laravel - возвращает все сообщения, кроме некоторых сообщений с условием / Laravel - Return All Posts Except some post with Condition

Alberto Valerio

21.09.2020 12:22:15

Попробуйте использовать where с оператором !=.

$col = Post::where('type', $type)->where('restrict', '!=' , 'res1')->orderBy('id', 'desc')->paginate(24);
Является ответом!
Deepesh Thapa

21.09.2020 12:51:49

Он не возвращает нулевое значение, потому что вы использовали whereNotIn. Это означает, что он будет возвращать только строки, имеющие значение, кроме 'res1' и null. Таким образом, всякий раз, когда вы применяете условие, mysql думает, что поле не должно быть нулевым.

Чтобы преодолеть эту ситуацию используйте следующий способ

$col = Post::where(function ($query) {
        $query->whereNotIn('restrict', ['res1'])->orWhereNull('restrict');                  
    })->orderBy('id', 'desc')->paginate(24);
Помочь в развитии проекта:
Закрыть X