2014-10-25 4 views
0

У меня есть таблица, которая возвращает большой набор данных из базы данных, но мне было любопытно, как большинство людей фильтруют данные.Обработка данных с помощью Eloquent и Laravel

Так, например, у меня есть таблица с типом, именем, датой. В этой таблице я хочу отфильтровать, где type = "New" в порядке убывания.

Как бы вы это сделали в URL-адресе и в коде?

Нечто вроде url?type=new&sort=-type?

Потому что лично мне не нравится этот формат .. Попытка найти способ сохранить URL-адрес красивым и чистым.

ответ

0

Вы можете попробовать:

$data = Model::whereType(Input::get('type'))->orderBy(Input::get('sort'),'DESC')->get(); 

, но это не будет работать, если кто-то передать, как sort не колонке имени, так что вы должны фильтровать его первым, а затем перейти к красноречивы, например:

$sort = Input::get('sort'); 

$allowed = ['name','active','someothercolumn']; 

if (!in_array($sort, $allowed)) { 
    $sort = $allowed[0]; 
} 

$data = Model::whereType(Input::get('type'))->orderBy($sort,'DESC')->get(); 
Смежные вопросы