在 cakephp 3 中过滤列表

Filtering a list in cakephp 3

如果设置了多个规则,我想在 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,
]);

有什么想法吗?

你可以这样做,

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

现在在你的查找(条件)中使用它

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

Note: - Use AND if both the variables are set, you want common results otherwise use OR instead of AND.

希望对您有所帮助。