2016-12-10 37 views
0

私はいつものようにコントローラを作成し、表示して表示するためにデータを渡す予定ですが、データが表示されない理由はわかりません.dd($ statuses)正しいデータが渡されました。しかし、私がデータが消えているのを見るために変更すると、誰もがここで何が問題なのか知っていますか?これが私の見解データがlaravelのビューに表示されない5.2

<div class="col-lg-5"> 
    @if(!$statuses->count()) 
     <p>There is no status here</p> 
    @else 
     @foreach($statuses as $status) 
      <p>{{ $status->body }}</p> 
     @endforeach 
    @endif 
</div> 

ある

私のコントローラ

$statuses=Status::where(function($query){ 
      return $query->where('user_id',Auth::user()->id); 
       //->orWhereIn('user_id',Auth::user()->friends()->lists('id')); 
     }) 
      ->orderBy('created_at','desc'); 

     return view('profile.testing') 
      ->with('statuses',$statuses); 

次のコードは、データが渡されたかどうかを確認するために使用されます。結果は正しいデータで配列されているため、データは渡されていますが、なぜ表示できないのかはわかりません。

$statuses=Status::where(function($query){ 
      return $query->where('user_id',Auth::user()->id); 

     }) 
      ->orderBy('created_at','desc') 
      ->get(); 
     dd($statuses); 
     return view('profile.testing') 
      ->with('statuses',$statuses); 
    } 

答えて

0

あなたがget()コールが欠落しているとして、あなたが実際にあなたのコントローラ内のすべてのデータを照会していない、あなたの質問にミスを犯していない限り。 get()なし

$statuses=Status::where(function($query){ 
     return $query->where('user_id',Auth::user()->id); 
})->orderBy('created_at','desc') 
->get(); // Get the data from the DB 

return view('profile.testing')->with('statuses',$statuses); 

は、コントローラは、おそらくあなたのビューに渡さ$statuses変数にQueryBuilderオブジェクトのインスタンスだけを割り当て呼び出します。

+0

こんにちは、 - > get()は、データが渡されたかどうかを確認するために使用されるので、私の質問には関係ありません。コントローラ側は実際のコードです。 – masterhunter

+0

それは私の主張です。データベースからデータを取得するには、 '' get() ''を呼び出す必要があります。それ以外の場合は、クエリを定義するオブジェクトのみを渡します。だから、あなたの '' foreach''ループには、あなたがデータベースのために質問しただけで、クエリを実行するようにデータベースに依頼していないので、データベースに質問しなかったので、ループするデータはありません。 '' get() ''関数は実際にデータベースにデータを要求します。 – PeterTheLobster

+0

私は問題を見つけたように見える、あなたの助けに感謝します。私の時間をたくさん節約してください。 – masterhunter

関連する問題