2017-11-27 6 views
0

私は毎日プロジェクトの多くのレポートを保存するレポートのテーブルを持つプロジェクトとレポートのテーブルを持っています。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"}]} 

は、どのように私はすべてのプロジェクトの最後のレポートを得ることができますか?

+0

'$ res'は' Project'のインスタンスです –

+0

あなたは本当にクエリからの応答を得ていますか?もしそうなら、あなたはここに返答することができますか? – user7325973

+0

@ user7325973編集質問 – hanie

答えて

0

あなたの要件が最新の単一レコードを表示するだけであると仮定します。この下のメソッドは、ショットを与えることができます。

コントローラースニペット:

$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 
+0

フィールド '日付'が見つかりませんでした。このエラーが表示されます。 – hanie

+0

編集済みのチェックをしました。 – user7325973

0

Hayy ...あなたは未定義の値を比較しようとしています。したがって、あなたはあなたのレスポンスから直接日付にアクセスすることはできません。あなたの代わりに以下のスニペットを使ってみてください。レポートにアクセスし、レポートから日付にアクセスしようとします。

+0

あなたの答えが間違っている – hanie

+0

あなたのエラー応答は何ですか?今すぐチェックして、endifを追加してください。あなたはまだ問題に直面している場合。あなたはエラーを提供することができますか? – user7325973

関連する問題