Задать вопрос
@SergioWhite22

Как выдать результаты, проигнорировав пустые sql-условия?

$result = Company::model()->with(
                'staffs',
                'staffs.phoneStaffs',
                'staffs.emailStaffs'
                )->findAll(array(
                    'condition'=> 'staffs.client_id=:idClientId '
                    . 'and phoneStaffs.client_id=:idClientId '
                    . 'and emailStaffs.client_id=:idClientId',
                    'params'=>  array(':idClientId' => $idClientId)));

При таком запросе результат будет пустым, если не найдётся ни одного emailStaffs.client_id=:idClientId. Как в таком случае проигнорировать пустое условие и выдать результат, но уже без наличия emailStaffs в результирующей выборке? В Yii2 для такого случая есть filterWhere().
  • Вопрос задан
  • 51 просмотр
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
kimono
@kimono
Web developer
$result = Company::find()
  ->with(['staffs', 'staffs.phoneStaffs', 'staffs.emailStaffs'])
  ->filterWhere([
    'staffs.client_id' => $idClientId,
    'phoneStaffs.client_id' => $idClientId,
    'emailStaffs.client_id' => $idClientId,
  ])->all();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы