2016-03-21 6 views
1

Ich habe eine Tabelle, die die Kategorienamen zurückgibt. Ich hole alle Datensätze, aber das Problem ist, dass es einen Datensatz gibt, den ich anders behandeln möchte, "Andere Früchte". Ich möchte, dass es zuletzt gezeigt wird.Wie ändert man die Reihenfolge der Ergebnisse in einer beredten Sammlung?

Zum Beispiel, wenn ich die Datensätze aus der Datenbank erhalten:

Category::where('parent_category_id', $data)->where('is_active', 1)->lists('name', 'id'); 

Die Sammlung es sieht wie folgt zurück:

Illuminate\Support\Collection Object 
(
    [items:protected] => Array 
     (
      [27] => Apple 
      [346] => Other Fruits 
      [350] => Papaya & Pomegranate 
      [377] => Banana 
      [438] => Orange & Sweet Lime 
     ) 
) 

Wie kann ich die „andere Früchte“ Artikel verschieben letzte zu sein ?

+0

Ist "Anderer Speicher" in DB gespeichert? Wenn ja, wie identifizieren Sie es? – Laerte

+0

Entschuldigung seine anderen Früchte Wie werde ich sicherstellen, dass andere Früchte als letzte kommen? –

+0

Ok, aber ist "Andere Früchte" in DB gespeichert? – Laerte

Antwort

0

Hey einfach zwei Regeln verwenden und zwei Sammlung

$category = Category::where('parent_category_id', $data)->where('is_active', 1)->lists('name', 'id'); 
$other = << use your rule correctly >> 

verwenden dann diese Sammlung in Ihrer Ansicht

foreach($category as .....) 
foreach($other as ....) 
0

Sie so etwas wie dies versuchen zu bekommen.

$categoriesExceptOtherFruits = Category::where('parent_category_id', $data) 
     ->where('is_active', 1) 
     ->where('id', '<>', $otherFruitsId); 

$allCategories = Category::where('parent_category_id', $data) 
     ->where('is_active', 1) 
     ->where('id', $otherFruitsId) 
     ->union($categoriesExceptOtherFruits) 
     ->lists('name', 'id'); 

Wenn Sie einige other Kategorien haben, verwenden Sie like statt <>. Eine andere Lösung ist sort Spalte in Ihrer Tabelle zu erstellen und einfach orderBy('sort', 'asc') zu verwenden.

Und natürlich können Sie die Sammlung manuell neu ordnen.

Verwandte Themen