У меня есть следующая SearchModel ComputerSearch
, где я выполняю объединение для запроса (я должен отфильтровать поле соответствующей таблицы):
class ComputerSearch extends Computer {
public function search($params) {
$query = Computer::find();
$query->innerJoinWith('mainboard');
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
$this->load($params);
if (!$this->validate()) {
return $dataProvider;
}
return $dataProvider;
}
}
Когда я печатаю запрос, с помощью var_dump($query->createCommand()->rawSql);
и выполнить вывод, я получу все данные компьютера и материнской платы (это соотношение 1: 1!).
Но: $dataProvider->models[0]->mainboard
всегда равно нулю, даже если в базе данных есть данные. Если я вычеркну строку с $query->innerJoinWith('mainboard');
, $dataProvider->models[0]->mainboard
правильно покажет связанную модель (а на самом деле она есть в дБ). Кто-нибудь может мне сказать, почему связанные модели в $dataProvider
не были правильно установлены, когда я присоединяюсь mainboard
?