如何为laravel添加通用变量并将此数据传递给所有视图所有视图

时间:2019-07-27 05:54:42

标签: laravel laravel-5

我想创建一个全局变量并将其传递到所有视图中,所以我可以将此变量放入所有刀片模板中

基本上,我需要将我的常规设置控制器值传递到常见的刀刃视图中,例如header.blade.php

预先感谢

2 个答案:

答案 0 :(得分:3)

为此,您需要像下面这样在App-> Providers-> AppServiceProvider.php中添加一些代码:

public function boot()
    {
        view()->composer('*',function($view){

            $Settings = Settings::firstOrNew(['id' => '1']); 
            $view->with('Settings', $Settings );

        });
    }

答案 1 :(得分:1)

根据Laravel文档,您可以使用View Composer:

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

在app> AppServiceProvider和引导方法中使用此功能,您可以使用此方法将参数传递给特定视图。如果您有每次渲染视图时都希望绑定到视图的数据。这种方法完全可以满足您的需求。例如,您想将名为userName的参数传递给标题。

View()->composer('header', function ($view){
    $userName= "username"    
    $view->with(['userName'=>$userName]);
});