私が理解していることから:
View::share('foo','bar');
すべてのビューで $foo を利用できるようにします。
View::share()
ただし、 でのみ使用できるというのは正しい__construct()
ですか?
外から__construct()
は仕事に行けないからです。
はい、次を追加します。
View::share('foo','bar');
routes.php ファイルで $foo ('bar' の値) をすべてのビューで使用できるようにします。これは、Twitter Bootstrap の「アクティブな」ナビゲーション クラスなどで特に役立ちます。たとえば、次のことができます。
View::share('navactive', '');
すべてのビューで navactive 変数が設定されていることを確認し (したがって、エラーが発生しないようにするため)、ビューを作成しているときに (コントローラーなどで)、次のように渡すことができます。
return View::make('one')->with('navactive', 'one');
次に、ビュー (できればブートストラップ ブレード テンプレート) で、次の操作を実行できます。
<ul class="nav">
@if ( Auth::user() )
<li @if ($navactive === 'one') class="active" @endif><a href="{{{ URL::to('one/') }}}">One</a></li>
<li @if ($navactive === 'three') class="active" @endif><a href="{{{ URL::to('three/') }}}">Three</a></li>
<li @if ($navactive === 'five') class="active" @endif><a href="{{{ URL::to('five/') }}}">Five</a></li>
@endif
</ul>
View::share
アプリケーション内のどこでも使用できる必要があります。これが使用される一般的な場所はビュー コンポーザーですが、ルート内または必要な場所で使用できる必要があります。
基本的に、すべてのビューで変数を共有したい場合は、最初internalController.php
に親クラスとして基本ルート (例: ) を作成し、その子 (例: childController.php
) として他のコントローラーを拡張することができます。
クラスが初期化されるたびに起動するので、view::share('foo', $bar)
おそらく の に__constructor()
を設定するでしょう。このようにして、親クラスは変数値を子クラスに提供します。internalController.php