LoginSignup
16
15

More than 5 years have passed since last update.

View::shareを利用してサイト全体のViewで支える変数を設定

Posted at

すべてのページでインクルードしているパーツに対して変数を設定したい場合、それぞれの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>
16
15
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
15