2017-05-26 4 views
0

Ich möchte Benutzer basierend auf dem bestimmten Wert sortieren. Zum Beispiel habe ich Users table und hat Beziehung mit Profiles Table. In der Profiles table habe ich Country (string) des Benutzers gespeichert.Sortieren Benutzer basierend auf bestimmten Wert (Zeichenfolge) in Laravel

Jetzt möchte ich bestimmte Länderbenutzer zuerst und dann die anderen Länderbenutzer sortieren.

Bitte führen Sie mich, wie kann ich das in Laravel tun. Dank

+0

, was Sie bis jetzt versuchte? –

Antwort

0

Sie können mit diesem Code spielen.

$users = Users::with(['profiles' => function ($query) { 
    $query->where('country', 'USA'); 
    $query->orWhere('country', 'Poland') 
}])->get(); 
0

Ich habe dies nicht überprüft, aber Sie können diese Lösung versuchen. Es wird dir helfen.

$users = Users::with(['profiles' => function ($query) { 
    $query->orderBy("country='your country name'", 'DESC') 
    $query->orderBy('country', 'ASC') 
}])->get(); 
0

können Sie diese verwenden

$users = Users::with(['profiles' => function ($query) use($country) { 
$query->orderBy(DB::raw('case when country="'.$country.'" then 1 else 2 end'))->orderBy('country', 'ASC'); 
}])->get(); 
Verwandte Themen