[英]Get last record of Table in Laravel
我有一個項目表和報告,報告表每天都保存許多項目報告。 現在,我想獲取我正在控制器中使用以下代碼的項目的上次報告日期屬性:
$res = Project::with(['reports' => function($query){
$query->orderBy('updated_at', 'DESC')->first();
}])->get();
return view ('home',compact('res'));
鑒於我有此代碼:
@foreach(Auth::user()->projects as $project)
@if($res->date == Now())
<p>hi</p>
@else
<p>By</p>
@endforeach
但是我得到這個錯誤: Property [date] does not exist on this collection instance
鑒於我給這個傑森的觀點而返回了$ res:
{"id":51,"user_id":21,"name":"dff","description":"fff","price":4444,"status":0,"darsad":4,"start_time":"1396-08-18","finish_time":"1396-08-29","created_at":"2017-11-19 08:22:39","updated_at":"2017-11-19 08:22:39","reports":[{"id":20,"user_id":21,"project_id":51,"date":"96\/09\/06","description":"vvvv","created_at":"2017-11-27 11:19:43","updated_at":"2017-11-27 11:19:43"}]}
如何獲得任何項目的最新報告?
假設您只需要顯示最新的單個記錄。 下面的方法可以嘗試一下。
控制器代碼段:
$res = Project::orderBy('updated_at', 'DESC')->get();
return view ('home',compact('res'));
刀片片段:
@foreach ($res as $data)
@if ($loop->first)
@if($data->reports[0]->date == Now())
<p>hi</p>
@else
<p>By</p>
@endif
@endif
@endforeach
Hayy ...您正在嘗試比較未定義的值,因為日期是響應中報告數組的一部分。 因此,您無法直接從響應中訪問日期。最好嘗試使用以下代碼段代替您的刀片。 它嘗試訪問報告,然后訪問報告中的日期。
@foreach(Auth::user()->projects as $project)
@if($res->reports[0]->date == Now())
<p>hi</p>
@else
<p>By</p>
@endif
@endforeach
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.