Laravel - 如何传递数据以包含

时间:2016-05-06 15:12:49

标签: php laravel blade

基本上我的所有视图都使用header.blade.php,因为我将它包含在我的主布局中。我需要将数据传递到每个视图的标题。那么有没有办法将数据传递给包含而不是在每个视图中传递标题的数据?

3 个答案:

答案 0 :(得分:27)

您不需要这样做,but you can

  

将创建父视图可用的所有变量   可用于包含的视图。即使包含的视图会   继承父视图中可用的所有数据,您也可以传递一个   包含视图的额外数据数组:

@include('view.name', ['some' => 'data'])

答案 1 :(得分:3)

如果您尝试仅将数据 发送到包含的视图,则可以使用view composer。即使在尝试为@include

准备视图的情况下,它们也会触发
view()->composer('header', function($view) {
    $view->with('data', 'some data');
});

答案 2 :(得分:1)

实际上,将数据共享给所有视图的最好,最快的方法就是使用

      AppServiceProvider

您可以使用share方法而不是composer方法来代替Jeff的答案,从而更快地实现目标。

只需按照以下方法在AppServiceProvider的启动方法中传递所需的数据

      public function boot()
{
    View::share('key', 'value');
}

有关更多信息,请检查this