を使用してブレード ビューにデータを渡し、ブレード ビューでreturn View::make('blog', $posts);
実行しようとすると、定義されていない@foreach ($posts as $post)
というエラーが表示されます。$posts
$posts
私の質問は、配列をどのように呼び出すかです。
を使用してブレード ビューにデータを渡し、ブレード ビューでreturn View::make('blog', $posts);
実行しようとすると、定義されていない@foreach ($posts as $post)
というエラーが表示されます。$posts
$posts
私の質問は、配列をどのように呼び出すかです。
with
メソッドを使用してビューにデータを渡すことができます。
return View::make('blog')->with('posts', $posts);
Laravel 5 の時点で、データをビューに渡すことが次のように行われるようになったことは、おそらく言及する価値があります。
return view("blog", ["posts"=>$posts]);
または:
return view("blog", compact("posts"));
ドキュメントはこちらから入手できます。
多数のメソッドをつなぎ合わせる代わりに、ビュー テンプレート名の後に 2 番目の引数として配列を渡すこともでき->with()
ます。
return View::make('blog', array('posts' => $posts));
または、PHP 5.4 以降を使用している場合は、より優れた「短い」配列構文を使用できます。
return View::make('blog', ['posts' => $posts]);
これは、別の場所で配列を計算する場合に便利です。たとえば、すべてのコントローラーがビューに渡す必要がある変数の束があり、これを特定の各コントローラーに固有の変数の配列と組み合わせたい場合 (array_merge
たとえば、を使用)、計算することができます$variables
(含まれる配列!):
return View::make('blog', $variables);
(私は頭のてっぺんからこれを行いました: 構文エラーが入り込んだ場合はお知らせください...)
同じことを別の方法で行うこともできます。
PHP 5.5 または最新のものを使用している場合は、次のように実行できます。
return view(index, compact('data1','data2')); //as many as you want to pass
<div>
You can access {{$data1}}. [if it is variable]
</div>
@foreach($data1 as $d1)
<div>
You can access {{$d1}}. [if it is array]
</div>
@endforeach
コンパクト関数で渡したすべての変数に同じ方法でアクセスできます。
それが役に立てば幸い :)
以下を使用して、Laravel で表示するデータを渡すことができます。
public function contact($id) {
return view('contact',compact('id'));
}