9

私が理解していることから:

View::share('foo','bar');

すべてのビューで $foo を利用できるようにします。

View::share()ただし、 でのみ使用できるというのは正しい__construct()ですか?

外から__construct()は仕事に行けないからです。

4

3 に答える 3

9

はい、次を追加します。

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>
于 2013-07-21T15:29:48.433 に答える
9

View::shareアプリケーション内のどこでも使用できる必要があります。これが使用される一般的な場所はビュー コンポーザーですが、ルート内または必要な場所で使用できる必要があります。

于 2013-06-02T02:24:13.367 に答える
0

基本的に、すべてのビューで変数を共有したい場合は、最初internalController.phpに親クラスとして基本ルート (例: ) を作成し、その子 (例: childController.php) として他のコントローラーを拡張することができます。

クラスが初期化されるたびに起動するので、view::share('foo', $bar)おそらく の に__constructor()を設定するでしょう。このようにして、親クラスは変数値を子クラスに提供します。internalController.php

于 2014-11-15T19:00:14.683 に答える