2016-03-21 22 views
1

カテゴリ名を返すテーブルがあります。私はすべてのレコードを取得しますが、問題はそれが別の扱いをしたいレコードがあることです。 "その他のフルーツ"。私はそれが最後に表示されたい。例えばEloquentコレクションの結果の順序を変更するにはどうすればよいですか?

、私は、データベースからレコードを取得するときに:私は最後であることを、「その他の果実」項目を移動するにはどうすればよい

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

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

を、それが返すコレクションは、このようになります。 ?

+0

"その他の店舗"はDBに保存されていますか?はいの場合、それをどのように識別しますか? – Laerte

+0

申し訳ありませんが他の果物どのように私は他の果実が最後に来ることを確認しますか? –

+0

[OK]を、 "その他の果物"はDBに保存されていますか? – Laerte

答えて

0

ねえ、単に2つのルールを使用し、2つのコレクション

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

その後、あなたはこのような何かを試みることができる

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

あなたのビューで、このコレクションを使用し得ます。

$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'); 

あなたは、いくつかのotherカテゴリを持っている場合は、代わりに<>likeを使用しています。

もう1つの解決策は、テーブルにsort列を作成し、orderBy('sort', 'asc')を使用することです。

もちろん、コレクションを手動で並べ替えることもできます。