Код: Выделить всё
public function getUsers_link() {
return $this->hasMany(RequestUsers::className(), ['crash_id' => 'req_id']);
}
public function getUsers() {
return $this->hasMany(Users::className(), ['user_id' => 'user_id'])->via("users_link");
}
Код: Выделить всё
public function getUser() {
return $this->hasOne(Users::className(), ['user_id' => 'user_id']);
}
Код: Выделить всё
$query = Request::find();
....
$query->with(['users_link.user']);
$query->with(['users.address.house.segment']);
return $query->all();
делается выборка users_link
Код: Выделить всё
SELECT * FROM `crash_req_users` WHERE `crash_id`=103
Код: Выделить всё
SELECT * FROM `isp_users` WHERE `user_id` IN (5835, 5839, 5854, 5868, 5870, 5877, 5880, 5881, 5886, 5893, 5898, 5924, 5930, 5954, 5984, 5988, 5989, 5990, 6004, 6017, 6052, 6105, 6164, 6169, 6171, 6316, 6318,
Код: Выделить всё
SELECT * FROM `crash_req_users` WHERE `crash_id`=103
далее как положено делается
Код: Выделить всё
SELECT * FROM `isp_users` WHERE `user_id` IN (5835, 5839, 5854, 5868, 5870, 5877, 5880, 5881,
а теперь магия:
обращаюсь я у результата к
Код: Выделить всё
foreach ($requests as $request) {
...$request->users_link->user->login;
}
Код: Выделить всё
SELECT * FROM `isp_users` WHERE `user_id`=5868
а теперь еще самое забавное если поменять местами
Код: Выделить всё
$query->with(['users.address.house.segment']);
$query->with(['users_link.user']);