:Laravel 4 - 理解ビュー::シェアは()私が理解から
View::share('foo','bar');
は、すべてのビューで$ fooが利用できるようになります。
View::share()
は__construct()
でのみ使用できますか?
外から__construct()
が働くので、私はできません。
:Laravel 4 - 理解ビュー::シェアは()私が理解から
View::share('foo','bar');
は、すべてのビューで$ fooが利用できるようになります。
View::share()
は__construct()
でのみ使用できますか?
外から__construct()
が働くので、私はできません。
View::share
は、アプリケーション内でどこでもにする必要があります。それが使用されている一般的な場所は、ビューの作曲家ですが、ルート内や必要な場所で使用できるはずです。
コントローラのメソッドの中に 'View :: share( 'name'、 'Steve');があれば、他のすべてのビューで$ nameを利用できますか?それだけです。 – user2094178
最初は間違っていました。私はroutes.phpに入れました。すでに期待していた効果がありました。私は一つのメソッドの中から別のコントローラの別のメソッドにしようとしていました。 – user2094178
これを行う良い方法を探している人のために何かを追加するだけです。ベースコントローラの '' '__construct()' 'メソッドの中に配置してください。 ;) –
はい、追加:
View::share('foo','bar');
をあなたのroutes.phpファイルには、すべてのビューで( 'バー' の値を持つ)$ fooが利用できるようになります。これは、Twitter Bootstrapの「アクティブな」ナビゲーションクラスのようなものに特に便利です。たとえば、あなたが行うことができます:
View::share('navactive', '');
をnavactive変数はすべてのビューに設定されている(したがって、エラーがスローされません)、その後、あなたが(例えば、あなたのコントローラで)ビューを作っている時に確認するために、あなたは渡すことができます。
return View::make('one')->with('navactive', 'one');
、その後、あなたのビュー(好ましくは、いくつかのbootstrappyブレードテンプレート)で、次の操作を実行できます。
<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>
これはとても便利です!ありがとう – titleistfour
それはそのための便利な使い方です。しかし、 '$ navactive''が' isset() 'であるかどうかをチェックするif文をいつも追加することができます。あなたはナビゲーションマーキングについて言及しているので、別の便利な解決策は、ここで見つけることができるその目的のために構築したプラグインを使用することです:https://github.com/kfirba/markNavigator – kfirba
基本的にすべてのVを通じて変数を共有したい場合親クラスとしてベースルート(E:internalController.php
)を作成し、他のコントローラーをその子として拡張することができます(E.x:childController.php
)。
internalController.php
の__constructor()
に設定するのが最も一般的です。クラスが初期化されるたびにランチされるため、親クラスが変数値を子クラスに提供します。
'View :: share()'の使い方にこの関数を置くことができますか? – Michelle