8

コントローラーにこれがある場合

$this->layout->nest('content', 'home.index', $array);

$arrayhome.index.blade.php テンプレート ファイル内のデータにのみアクセスできますlayouts.main。使用しているファイル内のデータにはアクセスできません。

レイアウトとビューは正しくロードされますが、レイアウト ファイルからコントローラーに渡されたデータにアクセスできません。

助けてくれる人はいますか?

明確にするために-title変数をlayout.mainに渡したいとしたら、どうすればよいでしょうか? $array上記の方法では、index.blade.php の「コンテンツ」内からのみアクセスできます。

4

2 に答える 2

9

データをレイアウトに渡すには、最初のパラメーターを変数の名前として使用します。

あなたがこれをしているときに何が起こっているのですか:

$this->layout->nest('content', 'home.index', $array);

$array のパラメーターを取るビュー home.index をネストしています。レイアウトで使用できる変数を作成していません。

レイアウト用に作成している変数は、渡されたビューのコンテンツを表示する $content です。これは「nest」メソッドに固有のものです。

API を調べると、コントローラーで宣言されている「レイアウト」が次のインスタンスであることがわかります。Laravel\View

これにはwith、ビューに変数を提供するというメソッドがあります。

それを使用するには、次のようにしてみてください。

$this->layout->with( 'myVariable' , $variable_to_pass_to_layout )
             ->nest('content', 'home.index', $array)
于 2012-07-23T12:12:26.950 に答える
0

別の解決策は、すべてのビューでデータを利用できるようにすることです。

View::share('myVariable', $variable_to_pass_to_layout);

誰でもアクセスできるようにすると便利です。

于 2014-05-16T20:02:31.060 に答える