Ist es möglich, die Ergebnisse einer Eloquent-Abfrage durch die eifrig geladenen Daten zu bestellen. Um klar zu sein, bekomme ich die richtigen Daten, es ist paginiert richtig und funktioniert in jeder Hinsicht, außer es ist nicht so angeordnet, wie ich es brauche. In diesem Fall möchte ich Benutzer nach profile.firstname sortieren.Laravel 5.2 Eloquent Order-Abfrage durch eifrig geladene Daten
Etwas wie folgt aus:
$results = User::where('id', '!=', $user->id)
->whereNotIn('id', $ids)
->with([
'profile' => function ($query) {
$query->addSelect(['id', 'first_name', 'last_name']);
},
])
->orderBy('profile.first_name', 'desc')
->paginate();
Die Daten werden in einer ionischen Anwendung verwendet wird und für eine unendliche Schriftrolle verwendet, so muss ich die Daten in dem Format haben, unten von first_name bestellt, bevor sie auf die empfangene Client, aber das obige Beispiel funktioniert nicht.
DATA benötigt für Ionic Ansicht
user: {
id: '1',
username: 'aUsername'
email: 'anEmail'
profile: {
id: '2',
user_id: '1',
first_name: 'aFirstName',
last_name: 'aLastName',
phone_number: '999-999-9999'
}
}
...
Solution (mit abgeflachter Ergebnismenge)
$results = User::join('user_profiles', 'users.id', '=', 'user_profiles.user_id')
->select('users.id', 'users.username', 'user_profiles.first_name', 'user_profiles.last_name')
->where('users.id', '!=', $user->id)
->whereNotIn('id', $existingContactIds)
->where('users.username', 'like', $request->input('username') . '%')
->orderBy('user_profiles.first_name')
->paginate();
Solution (mit der richtigen Ergebnisformat)
$results = User::where('users.id', '!=', $user->id)
->whereNotIn('users.id', $existingContactIds)
->where('users.username', 'like', $request->input('username') . '%')
->with([
'profile' => function ($query) use ($columns) {
$query->addSelect('user_profiles.first_name', 'user_profiles.last_name');
},
])
->select('users.id', 'users.username')
->join('user_profiles', 'users.id', '=', 'user_profiles.user_id')
->orderBy('user_profiles.first_name')
->paginate();
Könnten Sie teilen Template-Code entspricht? –
Um die Paginierung zu unterstützen, müssen Sie bestimmte Parameter in Ihrem Abfrage-Generator behandeln (wie Limit und Offset). –
Hallo, ich habe keine Probleme mit Paginierung, nur wie das Ergebnis bestellt wird – mtpultz