У меня есть поля в бд: one,two,three,four,five,six Обязательные для заполнения: two,three,four Вопрос, как мне проверять, заполнено ли поле one, five и six? и искать потом если заполнено one с $model->one и т.д.
Пытался делать так, но так не работает, если поле не заполнено one например, то ничего не ищет:
$v = Feedauto::find()
->andWhere(['two' => $model->two])
->andWhere(['three' => $model->three])
->andWhere(['four' => $model->four])
->andFilterWhere(['or',['region'=>null],['region' => $model->region_id]])
->andFilterWhere(['or',['one'=>null],['one' => $model->one]])
->andFilterWhere(['or',['five'=> null],['five' => $model->five]])
->andFilterWhere(['or',['six'=> null], ['six' => $model->six]])
->all();
Надеюсь меня поняли)) т.е. проверка, если поле пустое, не искать по нему, если заполнено, то искать по нему...
Если для необязательных полей по умолчанию записывается пустая строка ка значение, то запрос должен быть таким:
$v = Feedauto::find()
->andWhere(['two' => $model->two])
->andWhere(['three' => $model->three])
->andWhere(['four' => $model->four])
->andFilterWhere(['or',['region' => ''],['region' => $model->region_id]])
->andFilterWhere(['or',['one' => ''],['one' => $model->one]])
->andFilterWhere(['or',['five' => ''],['five' => $model->five]])
->andFilterWhere(['or',['six' => ''], ['six' => $model->six]])
->all();
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости