すべてのページでインクルードしているパーツに対して変数を設定したい場合、それぞれのControllerないで定義するのは現実的ではないので、View::share()など、サイト全体に設定できる関数を利用して変数を設定しておく。
View::share('foo', $bar);
これを記述しておけば、すべてのViewで$fooの値を利用することが可能。
記述するところは、route.phpや基底クラスのconstractorなどに記述しておけばOK。
利用の場面としては、共通メニュー内に表示条件を指定したい時の条件設定をする場合などに使えそう。
BaseController.php
public function __constract()
{
// 表示条件を設定
if (***)
{
$fuga = true;
}
else
{
$fuga = false;
}
View::share('fuga', $fuga);
}
menu.blade.php
<ui>
<li>menu1</li>
<li>menu2</li>
<li>menu3</li>
@if ($fuga)
<li>menu4</li>
@endif
<li>menu5</li>
</ui>