У меня есть следующая 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
?