2017-05-29 3 views
1

Je voudrais filtrer mes articles dans les résultats Cakephp 3, si les multiples règles sont définies. Par exemple avant résultat de filtrage est la liste de tous les articles. Si la catégorie est définie, le résultat est tous les articles de cette catégorie. si le prix est fixé tous les articles dans cette catégorie avec ce prixFiltrage d'une liste dans CakePHP 3

$item = $this->Items->find('all',['conditions' => 
     IF ($category) RETURN Items.in.Category ELSE RETURN ALL, 
     IF ($price) RETURN Items.in.Price ELSE RETURN ALL, 
]); 

une idée?

Répondre

1

Vous pouvez faire quelque chose comme ça,

$condition=[]; //Declaration of array for conditions 
if(isset($category}) 
    $condition[] = ['category ' => $category]; 
if($price) 
    $condition[] = ['price ' => $price]; 

Et maintenant utiliser, dans votre découverte (condition)

$this->Items->find('all',['conditions' => ['AND'=>[$condition]]]; 

Note: - Utilisation et si les deux variables sont définies, vous voulez obtenir des résultats communs utiliser ou au lieu de ET.

espoir Cela vous aidera.