2017-08-15 28 views
0

コレクションを作成してブレードに渡そうとしています。アイテムのプロパティを取得するためにpeople_colを通して私のブレードIのループでは、このLaravel - プロパティ[名前]がこのコレクションインスタンスに存在しません

$collection1 = collect(['name' => 'Alex', 'id' => '1']); 
$collection2 = collect(['name' => 'John', 'id' => '2']); 
$collection3 = collect(['name' => 'Andy', 'id' => '3']); 

$people_col = new Collection(); 

$people_col->push($collection1); 
$people_col->push($collection2); 
$people_col->push($collection3); 

return view('test',[ 
    'people_col' => $people_col 
]); 

のように私のPHPコードを見て:

Property [name] does not exist on this collection instance

任意のアイデア:

@foreach ($people_col as $people) 
     <tr> 
      <td>{{ $people->name }}</td> 
      <td>{{ $people->id }}</td>    
     </tr> 
@endforeach 

私はこのエラーを得たが? おかげ

+0

uh、最初に 'dd($ people_col)'を試して、どのように見えるかを確認してください。 –

答えて

1

は、プロパティ名にアクセスするには、この方法を試してみてください:$people['name']

@foreach ($people_col as $people) 
     <tr> 
      <td>{{ $people['name'] }}</td> 
      <td>{{ $people['id'] }}</td>    
     </tr> 
@endforeach 
1

あなたがあなたの代わりにオブジェクトのコレクションを作成しておく必要があり、コレクションのコレクションを作成しています。あなたの現在の実装では

あなたは何をしているかあなたは配列アクセス方法{{ $people['name'] }}を使用するか、あなたは以下のようなオブジェクトのコレクションを作成した場合は、コレクション{{ $people->get('name') }}

get方法を使用して値を取得し、代わりにそれを返すことができるはずです今すぐ

$people_col = collect([ 
    (object) ['name' => 'Alex', 'id' => '1'], 
    (object) ['name' => 'John', 'id' => '2'], 
    (object) ['name' => 'Andy', 'id' => '3'] 
]); 

return view('test', [ 
    'people_col' => $people_col 
]); 

あなたのコードで行ったようにあなたの人のオブジェクトにアクセスできるはずです。

@foreach ($people_col as $people) 
    <tr> 
     <td>{{ $people->name }}</td> 
     <td>{{ $people->id }}</td>    
    </tr> 
@endforeach 
関連する問題