77

を使用してブレード ビューにデータを渡し、ブレード ビューでreturn View::make('blog', $posts);実行しようとすると、定義されていない@foreach ($posts as $post)というエラーが表示されます。$posts

$posts私の質問は、配列をどのように呼び出すかです。

4

16 に答える 16

98

withメソッドを使用してビューにデータを渡すことができます。

return View::make('blog')->with('posts', $posts);
于 2013-08-20T17:53:36.800 に答える
74

Laravel 5 の時点で、データをビューに渡すことが次のように行われるようになったことは、おそらく言及する価値があります。

return view("blog", ["posts"=>$posts]);

または:

return view("blog", compact("posts"));

ドキュメントはこちらから入手できます。

于 2016-06-01T04:49:32.927 に答える
10

多数のメソッドをつなぎ合わせる代わりに、ビュー テンプレート名の後に 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);

(私は頭のてっぺんからこれを行いました: 構文エラーが入り込んだ場合はお知らせください...)

于 2014-05-21T15:45:45.093 に答える
2

同じことを別の方法で行うこともできます。

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

コンパクト関数で渡したすべての変数に同じ方法でアクセスできます。

それが役に立てば幸い :)

于 2017-04-25T04:58:54.987 に答える
-1

以下を使用して、Laravel で表示するデータを渡すことができます。

public function contact($id) {
    return view('contact',compact('id'));
}
于 2018-09-24T20:02:02.673 に答える