Laravel : recherche ou filtrer la collection

J'ai ce problème alors que le filtrage ou la recherche à travers une collection

http://laravel.io/bin/vj115 de vérifier l'url pour le code.

Ce que je suis en train de faire, c'est de filtrer une collection par la méthode get (à partir de l'url, bien sûr)
Mais seulement cela ne fonctionne que lorsque Input::get('category') a valeur d'autre rien ne fonctionne.

Pourriez vous s'il vous plaît vérifier le code et laissez-moi savoir ce qui doit être fixe?

Grâce.

===== Le Code réel, juste au cas où le lien est rompu à l'avenir (édité)=============

public function anyIndex() {
$id = Input::get('id');
$brand = Brand::firstOrNew(array('id' => $id));
$paginate = Misc::getSettings('admin-pagination');
$page_no = isset($_GET['page']) ? $_GET['page'] : 1;
$i = ($paginate * $page_no) - ($paginate - 1);
$appends = false;
$newBrands = new Brand;
if (Input::get('category')) {
$brandCat = BrandCategory::find(Input::get('category'));
$newBrands = $brandCat->brands();
$appends['category'] = Input::get('category');
}
if (Input::get('status')) {
$status = Input::get('status') == 'published' ? 1 : 0;
$newBrands->where('is_active', '=', $status);
$appends['status'] = Input::get('status');
}
if (Input::get('order_by') || Input::get('order')) {
if (Input::get('order_by')) {
$order_by = Input::get('order_by');
$appends['order_by'] = Input::get('order_by');
} else {
$order_by = 'name';
}
if (Input::get('order')) {
$order = Input::get('order');
$appends['order'] = Input::get('order');
} else {
$order = 'asc';
}
$order = Input::get('order') ? Input::get('order') : 'asc';
$newBrands->orderBy($order_by, $order);
}
$brands = $newBrands->paginate($paginate);
$brand_categories_list = new BrandCategory;
$selected_cats = array();
if ($id != "") {
$selected_cats = $brand->categories->lists('id');
}
return View::make('admin.brands.index')
->with(array(
'selected_cats' => $selected_cats,
'brand' => $brand,
'brands' => $brands,
'brand_categories_list' => $brand_categories_list->lists('name', 'id'),
'appends' => $appends,
'i' => $i
));
}

Laravel : recherche ou filtrer la collection

Merci à Dave.. je l'ai résolu comme :

    public function anyIndex() {
$id = Input::get('id');
$brand = Brand::firstOrNew(array('id' => $id));
$paginate = Misc::getSettings('admin-pagination');
$page_no = isset($_GET['page']) ? $_GET['page'] : 1;
$i = ($paginate * $page_no) - ($paginate - 1);
$appends = false;
if (Input::has('category')) {
$brandCat = BrandCategory::find(Input::get('category'));
$newBrands = $brandCat->brands();
$appends['category'] = Input::get('category');
} else {
$newBrands = Brand::limit(-1);
}
if (Input::has('status')) {
$status = Input::get('status') == 'published' ? 1 : 0;
$newBrands->where('is_active', '=', $status);
$appends['status'] = Input::get('status');
}
if (Input::has('order_by') || Input::has('order')) {
if (Input::has('order_by')) {
$order_by = Input::get('order_by');
$appends['order_by'] = Input::get('order_by');
} else {
$order_by = 'name';
}
if (Input::has('order')) {
$order = Input::get('order');
$appends['order'] = Input::get('order');
} else {
$order = 'asc';
}
$order = Input::get('order') ? Input::get('order') : 'asc';
$newBrands->orderBy($order_by, $order);
}else{
$newBrands->orderBy('name', 'asc');
}
$brands = $newBrands->paginate($paginate);
/* $queries = DB::getQueryLog();
$last_query = end($queries);
dd($last_query); */
$brand_categories_list = new BrandCategory;
$selected_cats = array();
if ($id != "") {
$selected_cats = $brand->categories->lists('id');
}
return View::make('admin.brands.index')
->with(
array(
'selected_cats' => $selected_cats,
'brand' => $brand,
'brands' => $brands,
'brand_categories_list' => $brand_categories_list->lists('name', 'id'),
'appends' => $appends,
'i' => $i)
);
}
  • Une catégorie est obligatoire ou facultatif paramètre?
  • Merci pour la réponse rapide.. facultatif...
  • Ne vous obtenez une erreur? Si oui, pouvez-vous coller l'erreur ici?
  • je n'obtiens aucune erreur, il juste ne travail avec les catégories.
  • je doute que si le problème est avec cette $newBrands = new Brand; ligne
  • sans le filtre habitude de travail.. il va tout simplement tout montrer sans filtes en cours de traitement.
  • DONC, si aucune catégorie n'est sélectionnée, le filtre n'a pas de filtre, et si la catégorie dans le filtre est sélectionné, le filtre fonctionne, non?
  • le droit.. si la catégorie est sélectionnée autres options de travail aussi..
  • Êtes-vous sûr qu'il y a des marques où is_active est faux?
  • Non.. toutes les marques sont is_active = 1 mais il ne fait aucune différence.. comme is_active = 1 devrait travailler trop..