2017-08-25 37 views
3

我有一個列名稱類型的表,我如何根據列值在一個查詢中顯示結果?根據某些列值拆分foreach循環

Tags 
id|name|type //type can be fixed,price 

Tag::orderBy('id', 'desc')->get(); 

現在我想顯示價格並固定在兩個不同的partials.what是最好的辦法。

我可以通過以下查詢來做到這一點,但我正在尋找最好的方法,可能與一次查詢。

Tag::where('type','fixed')->orderBy('id', 'desc')->get(); 
Tag::where('type','price')->orderBy('id', 'desc')->get(); 

回答

2

您的查詢應該是這樣的:

$tags = Tag::orderBy('id', 'desc')->groupBy('type')->get(); 

和你的foreach循環應該是這樣的:

@foreach ($tags as $tag) 
     @if($tag->fixed) 
      // do smth 
     @else 
      //do smth 

     @endif 
    @endforeach 
+0

謝謝你的回答,我錯過了group by子句。 –

2

我可能有棍子的錯誤結束時,你可能意味着您希望執行控制器內的邏輯,並根據結果返回不同的視圖,但是,我將在一個查詢中返回所有內容,因爲您已完成

Tag::orderBy('id', 'desc')->get();

@include葉片指令包含一個額外的參數,它是將傳遞到該部分中的數據:

@include('view.name', ['some' => 'data'])

在@include指令的更多信息可以在Documentation

可以找到