Mam kwerendy w moim kontrolera:Yii2 ORDER BY dla relacyjnych danych w ActiveRecord
$model = Object::find()->where(['id' => $id])->with(['backups'])->one();
getBackups jest hasMany() relacja, więc $ modelu zwraca kilka 'kopie zapasowe'.
Czy istnieje sposób na zamówienie "kopii zapasowych"?
Próbowałem następujących bez rezultatów (lub błędy):
$model = Object::find()
->where(['id' => $id])
->with(['backups' => function($query) {
$query->orderBy(['updated_at' => SORT_DESC]);
}])
->one();
Testowałem twój kod i działa dobrze (drugi z zapytaniem o zamówienie zwrotne). Przetestuj go zmieniając kierunek zamówienia (SORT_DESC, SORT_ASC): echo $ model-> backups [0] -> id. Id powinien się zmienić. w przeciwnym razie sądziłbym, że w bazie danych jest tylko jedna kopia zapasowa. –
Będę miał inne spojrzenie na to. Dzięki –
Mam 3 pola relacyjne pokazujące wpis, który teraz oglądam. Próbowałem obu opcji sortowania i jestem echo id identyfikatora kopii zapasowych [0], jak mówisz. Nie mogę uzyskać żadnych zmieniających się wyników:/ –