User-Modell steht in Beziehung folgen:Yii2 hasMany ohne Link Felder
public function getWorkload() : ActiveQuery
{
return $this->hasMany(ScheduleWorkload::className(), ['staff_id' => 'id']);
}
Methode Suchen:
$staffs = User::find()
->alias('u')
->joinWith(['workload as uw' => function($q) {
$q->select(['uw.staff_id', 'uw.date', 'uw.time_ranges']);
}], true)
->select([
'u.id',
'CONCAT(u.first_name, \' \', u.last_name) as name',
'u.first_name',
'u.last_name',
'u.undelivered_messages',
])
->where(['u.is_staff' => 1])
->asArray()
->all()
;
ich ohne uw.staff_id in Folge gesetzt bekommen Daten benötigen? Ist es ohne Nachbearbeitung möglich?
UPDATE: Ergebnismenge, die ich
habe ich „Arbeitsbelastung“ als Array-Parameter benötigen, aber nicht verwenden, Nachbearbeitung und nur ausschließen „staff_id“ von Ergebnismenge.
Raw SQL:
SELECT `u`.`id`, `u`.`undelivered_messages`
FROM `user` `u`
LEFT JOIN `schedule_workload` `uw` ON `u`.`id` = `uw`.`staff_id`
WHERE `u`.`is_staff`=1
und welche Ergebnismenge haben Sie jetzt? Wie ich sehen kann, ist die Variable '$ staffs' vom Typ' ActiveQuery'. Was ist das Ergebnis von '$ staffs-> createCommand() -> rawSql'? – oakymax
Ich aktualisiere Post. Bitte beachten Sie den Update-Bereich. $ Mitarbeiter ist Array. Ich habe vergessen, -> asArray() -> all() – johndoek