Используя это решение, как я могу получить свою переменную $conditions
для своего активного запроса?
$conditions = 'main_category_id != :main_category_id', ['category_status' => 1, 'main_category_id' => 0, 'sub_category_id' => $id,'type'=> 4];
$result = Category::find()->where($conditions)->orderby('category_name ASC')->all();
По моему запросу main_category_id != 0
. Любое другое решение, которое работает, также прекрасно
Обратите внимание, что мне нужна переменная $conditions
, так как они различаются. Вот мой запрос с операторами if:
public function get_subcategory_list($id="",$type="")
{
$conditions = ['category_status' => 1, 'main_category_id' => 0, 'main_category_id' => $id, 'type' => 2];
if($type == 2){
$conditions = ['category_status' => 1, 'main_category_id' => 0, 'sub_category_id' => $id, 'type' => 3];
}
if($type == 3){
$conditions = ['category_status' => 1, 'main_category_id' => 0, 'sub_category_id' => $id,'type'=> 4];
}
$result = Category::find()->where($conditions)->orderby('category_name ASC')->all();
return $result;
}
Обратите внимание, что $conditions
отлично работает с вышеуказанной функцией, единственная проблема здесь в том, что main_category_id
не должно быть равно 0.
'main_category_id' => 0, 'main_category_id' => $id
. Это опечатка? Разве это не должно быть'main_category_id' => 0, 'sub_category_id' => $id
? - person arogachev   schedule 08.08.2015