如何将一些变量仅用于某些特定视图?

时间:2017-07-28 19:45:06

标签: php laravel

我在文档中发现可以做类似的事情

但是对于所有观点

通过添加AppServiceProvider或其他类似

的ServiceProvider

View::share('key', 'value');

但是如何仅与some specific次观看分享数据?

不是全部。不是一个。但有些意见?列出的视图是数组或我希望它共享的内容

2 个答案:

答案 0 :(得分:1)

使用view composer。

  

您可以通过将视图数组作为第一个参数传递给composer方法,一次将视图编辑器附加到多个视图

View::composer(
    ['profile', 'dashboard'],
    'App\Http\ViewComposers\MyViewComposer'
);

https://laravel.com/docs/5.4/views#view-composers

答案 1 :(得分:1)

这就是我通常设置这种情况的方式

在AppServiceProvider中

public function boot()
{
      View::composer(
        ['home', 'profile.edit', 'projects.create'], // array of views
        function($view){
          $foo = \App\Foo::where('active', 1)->get();
          $bar = \App\Bar::all();
          $view->with(compact('foo', 'bar'));
        }
      );
}

然后在我传递给数组的视图中,我可以引用我的变量:

@foreach($foo as $item) :

@endforeach