Laravel поисковый фильтр - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь получить все столбцы и значения, используя красноречивый стиль для поиска. Это функция фильтра. Похоже, я что-то не так делаю. Любая помощь будет принята с благодарностью.

protected static function search($query, $fields, $value)
{
    return $query->where(function($query) use ($fields, $value){
        collect($fields)->reduce(function($query, $field) use ($value) {
            return $query->OrWhere($field, 'like','%' . $value . '%');
        }, $query);
    });     
}

Ну, когда я явно добавляю имена столбцов, это работает.

return $query->where('title', 'like', '%' .$value. '%')
    ->orWhere('fehlercode', 'like', '%' .$value. '%');

1 Ответ

0 голосов
/ 05 мая 2020

Я бы сказал, что в этом случае reduce довольно агрессивно, это больше для объединения нескольких переменных в одну, каждый () - лучший метод для этого. Также в методе orWhere() написаны ошибки, начиная с заглавной буквы, Laravel использует psr2, который использует в методе регистр верблюда.

return $query->where(function($query) use ($fields, $value){
    collect($fields)->each(function($field) use ($query, $value) {
        $query->orWhere($field, 'like','%' . $value . '%');
    });
});    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...