2017-05-29 50 views
1

如果设置了多个规则,我想在CakePHP 3中过滤我的项目结果。 例如过滤结果是所有项目列表之前。如果设置了类别,则结果是该类别中的所有项目。如果价格设置在该类别的所有项目与该价格在cakephp 3中过滤列表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, 
]); 

任何想法?

回答

1

你可以做这样的事情,

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

而现在使用这个,在你找到(条件)

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

注: - 使用且如果两个变量被设置,你需要共同的结果,否则使用OR而不是AND。

希望这会帮助你。