Laravel5 でviewにデータを受け渡す時にエラーが出る


ブラウザで表示させようとすると`Property [id] does not exist on this collection
instance.`と表示されます。

view

[code]

    @section('content')
    
    @foreach($data as $row)
     <tr>
      <td>{{ $row->id }}</td>
      <td>{{ $row->title }}</td>
    </tr>
    @endforeach
    
    
    @endsection
    
[/code]

controller

[code]

        public function index()
        {
    
        $data['posts']=DB::table('posts')->get();
        var_dump($data);
        return View('post/index',['data' => $data]);
    
        }
    
[/code]




$data['posts']にテーブルの抽出結果を入れているので、  
foreachでループしながら参照するのではなく$dataでなく$data['posts']です。  
そのため、$row（=$data['posts']）は配列（正確にはCollectionクラス)なのでidという属性はもっていないと言われています。

修正箇所としてはコントローラー出直す場合、

[code]

    $data=DB::table('posts')->get();
    
[/code]

ビューで直す場合、

[code]

    @foreach($data['posts'] as $row)
    
[/code]




$data['posts']にテーブルの抽出結果を入れているので、  
foreachでループしながら参照するのではなく$dataでなく$data['posts']です。  
そのため、$row（=$data['posts']）は配列（正確にはCollectionクラス)なのでidという属性はもっていないと言われています。

修正箇所としてはコントローラー出直す場合、

[code]

    $data=DB::table('posts')->get();
    
[/code]

ビューで直す場合、

[code]

    @foreach($data['posts'] as $row)
    
[/code]

