Laravel Красноречивый ИЛИ ГДЕ НЕ РАВНО НУЛЮ


Я использую пакет администратора Laravel из frozennode. Короче говоря, я сталкиваюсь с проблемами при отображении результатов, которые были удалены программно. Я пытаюсь переопределить запрос по умолчанию:

select * from `scripts` where `scripts`.`deleted_at` is null group by `scripts`.`id`

Для отображения как удаленных результатов, так и не удаленных, каким-то образом взломанных. Это не самое элегантное решение, но я не вижу другого способа сделать это. Итак, моя цель состоит в том, чтобы сделать это:

select * from `scripts` where `scripts`.`deleted_at` is null or `scripts`.`deleted_at` is not null group by `scripts`.`id`

К сожалению, я не знаю, как использовать orWhere() с "не равно нулю". После немного изучив, я попробовал это с помощью необработанного блока SQL, например:

'query_filter'=> function($query) {
    $query->orWhere(DB::raw('`scripts`.`deleted_at` is not null'));
},

Но в итоге я получил дополнительный фрагмент SQL, в результате чего не включил второй параметр в orWhere():

select * from `scripts` where `scripts`.`deleted_at` is null or `scripts`.`deleted_at` is not null **is null** group by `scripts`.`id`

Как я могу это исправить?

Author: Anonymous, 2014-10-13

3 answers

Просто добавьте withTrashed:

'query_filter'=> function($query) {
    $query->withTrashed();
},

Источник

Обновление

В этом случае вы, вероятно, можете просто добавить вызов orWhereNotNull():

'query_filter'=> function($query) {
    $query->orWhereNotNull('deleted_at');
},
 17
Author: Jeff Lambert, 2014-11-03 18:37:13

Если вы хотите найти удаленную запись (Мягко удаленную запись), не выполняйте запрос модели пользователя Eloquent.
Вместо этого используйте Db::table query
например,
Вместо использования ниже:

$stu = Student::where('rollNum', '=', $rollNum . '-' . $nursery)->first();

Использовать

$stu = DB::table('students')->where('rollNum', '=', $newRollNo)->first();

 0
Author: user4397894, 2015-02-27 10:12:57

Это может иметь отношение к делу:

return $this->join($table, $first, $operator, $second, 'right');

(из GitHub).

 -3
Author: Gabriel Glauber, 2015-10-21 19:41:35