Мне не совсем понятно поведение Active Record в Yii2, когда мы используем метод
joinWith();
Пример кода
// Relation is has many
return $this->hasMany(Cars::className(), ['user_id' => 'id']);
// Create and execute query to the db
User::find()->select(['user.*', 'cars.*'])->joinWith(['cars'])->where(['user.id' => $id])->one()
Данный код генерирует 2 запроса
SELECT `user`.*, `cars`.* FROM `user` LEFT JOIN `cars` ON `user`.`id` = `cars`.`user_id` WHERE `user`.`id`='54'
SELECT * FROM `cars` WHERE `user_id`=54
В случае с has one такое же поведение.
Версия Yii2: 2.0.7
Версия PHP: PHP 5.6.15-1~dotdeb+7.1 (cli)
Операционная система: Linux api 3.2.0-4-amd64 #1 SMP Debian 3.2.57-3 x86_64