отношение yii2 дополнительно к условию на основе значения другого столбца таблицы - PullRequest
0 голосов
/ 21 апреля 2020

В ссылке есть сгенерированный Yii2 запрос от ActiveRecord, он работает в базе данных напрямую. https://pastebin.com/nEvyG1J1

При использовании его с активной записью, похоже, игнорируется второе условие включения. Он возвращает первую запись, которая соответствует ...

([importField].[id] = [importFieldData].[importFieldId]) 

, когда я ожидаю, что она будет соответствовать обоим условиям

([importField].[id] = [importFieldData].[importFieldId]) AND
([importFieldData].[primaryKeyId] = [importParam].[id])

ниже - это мой активный объект записи, fieldData отношение hasOne

$importParamRecord = ImportParamRecord::find()
   ->joinWith([
      'importType.importFormat.paramFields.fieldData' => function($query) {
         $query->andOnCondition(['importFieldData.primaryKeyId' => new 
         Expression('[importParam].[id]')]);
      },
   ], false, 'JOIN')
   ->andWhere(['importTypeId' => $request->get('typeId')])
   ->orderBy(['sortNumber' => SORT_ASC]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...