2017-05-29 52 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。

希望這會幫助你。