Я столкнулся с ситуацией, когда соединение через with() не подтягивается, если в выборке несколько записей. Если запись только одна, все работает правильно, но в остальных случаях возвращает ноль. Запрос прост:
Код: Выделить всё
$modelClass::find()
->with(['shopPartner'])
->where([$modelClass::tableName() . '.id' => $ids])
Ссылка осуществляется через поле shop_code модели на поле кода связанной модели, которое содержит строку, например «test».
Код: Выделить всё
public function getShopPartner(): ActiveQuery
{
return $this->hasOne(ShopPartner::class, ['code' => 'shop_code']);
}
Если вы удалите ссылку из with(), связанная модель будет правильно получена при доступе к ->shopPartner, но такое поведение не ожидается в цикле.
Подробнее здесь:
https://stackoverflow.com/questions/798 ... lationship