Поиск по необязательным полям

306
17 декабря 2018, 08:10

У меня есть поля в бд: 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();

Надеюсь меня поняли)) т.е. проверка, если поле пустое, не искать по нему, если заполнено, то искать по нему...

Answer 1

Если для необязательных полей по умолчанию записывается пустая строка ка значение, то запрос должен быть таким:

$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();
READ ALSO
Использование array_filter

Использование array_filter

Есть определённый массив и я хочу его отфильтровать по определённым ключамДля этого использую встроенную в php функцию для работы с массивами...

195
file_get_contents и url без протокола

file_get_contents и url без протокола

На вход file_get_contents подается урл на файл без протоколаНапример //example

152
Почему не работает цель на кнопке

Почему не работает цель на кнопке

Не работает цель на JavaScript событии Яндекс Метрики Вот код кнопки и вставленная туда цель :

187
Определение границ изображения

Определение границ изображения

Имеется растровое изображение (без фона) некоторого объекта, который загружается в QGraphicsSceneНужно определить его границы как QPainterPath для того,...

146