2016-07-15 28 views
0

我在我的Model類中使用hasMany來檢索客戶筆記,我怎樣才能通過在laravel blade模板中創建的最新日期來訂購這些筆記。如何在laravel blade中訂購我的foreach

我的代碼在下面,我得到一個錯誤。

請諮詢我..

@foreach($clients->notes->orderBy('created_at', 'desc') as $note) 
    <table class="table table-bordered"> 
     <tr> 
      <td class="col-xs-2 col-md-2"><b>Created On:</b> {{ date('d/m/y', strtotime($note->created_at)) }} <b>&#64;</b> {{ date('g:i A', strtotime($note->created_at)) }} </td> 
      <td class="col-xs-14 col-md-12">{{ $note->notes }}</td> 
     </tr> 
    </table> 
@endforeach 
+0

您得到了什麼錯誤? – ceejayoz

回答

1

猜測,因爲你還沒有告訴我們什麼錯誤你得到,但:

$clients->notes是結果的已經取集合。 $clients->notes()是一個查詢生成器,您可以應用更多的邏輯,如排序或附加條件。

你可能想:

$clients->notes()->orderBy('created_at', 'desc')->get() 

,但你應該做的是,在控制器和它傳遞給視圖,而不是在刀片模板直接具有查詢。

(您也可以使用Laravel的收集功能$clients->notes,包括the sortBy() function)。

+0

非常感謝..我已經得到它在我的刀片模板上工作。對不起,沒有說錯誤,我會下次:) – edmond

0

必須在控制器或型號中訂購數據。如果您已經在模型中使用過許多驗證,您可以按照下面提到的方法進行操作

In model write association 
    public function notes() 
    { 
     return $this->hasMany('Note')->orderBy('created_at', 'desc'); 
    } 

    In your controller function associate client with notes like this 

    $clients = Client::with('notes')->get(); 
    Hope you get your answer