簡體   English   中英

獲取Laravel中Table的最新記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM