Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel:将变量传递给多个视图_Laravel - Fatal编程技术网

Laravel:将变量传递给多个视图

Laravel:将变量传递给多个视图,laravel,Laravel,我想以友好的方式制作菜单,因此,取而代之的是“本月最佳影片”,而是“12月最佳影片”(见图);12月是每月更新自身的当前月份 我的问题是菜单不属于特定的路由/控制器,因此我不能像传递其他路由一样传递变量。例如: $month = Carbon::now()->format('F'); return view('partials._nav') ->withMonth($month); 我可以把这个月的时间“解决”给所有的管制员/路线,但是我重复

我想以友好的方式制作菜单,因此,取而代之的是“本月最佳影片”,而是“12月最佳影片”(见图);12月是每月更新自身的当前月份

我的问题是菜单不属于特定的路由/控制器,因此我不能像传递其他路由一样传递变量。例如:

    $month = Carbon::now()->format('F');
    return view('partials._nav')
            ->withMonth($month);
我可以把这个月的时间“解决”给所有的管制员/路线,但是我重复了很多次同样的代码

我的问题是

1-在Laravel中是否有任何方法可以将变量传递到一种rootstate(如Angular中),因此,我在应用程序的所有路径中都保持变量可用

2-是否有任何方法可以将变量返回到多个视图?因此,我只需将变量传递给所有可能的视图,如:

return view('films.all', 'films.show', 'films.index', 'actors.show', 'actors.index')
                ->withMonth($month);
如有任何意见,将不胜感激

更新

最后我有了解决方案:

public function boot()
{
    View::composer('*', function ($view) {
        $month = Carbon::now()->format('F');

        $view->withMonth($month);
    });
}
您可以使用该方法将数据共享到多个视图。将以下代码放入
App/Providers/AppServiceProvider
boot()方法中:

public function boot()
{
    view()->share('key', 'value');
} 

您可以使用
AppServiceProvider
,通过扩展的布局传递变量

您的代码将是:

public function boot()
{
    View::composer('*', function ($view) {
        $var = 'value';

        $view->with('var', $var);
    });

    View::composer('*', function ($view) {
        $month = Carbon::now()->format('F');

        $view->withMonth($month);
    });
}
您需要使用以下类:
use-illumb\Support\Facades\View


希望这能奏效

另一种方法是使用Laravel会话。 您可以在会话中保存变量值,并在任何地方获取它

 //To Save value in Session
   $month = 'January';
   Session::put('currentMonth', $month);

 //To Get value from Session
   if((Session::has('currentMonth'))) {
       $month_var = Session::get('currentMonth');
    }

我使用了这个解决方案,将行$var='value'更改为->“$var=Carbon::now()->格式('F');“因为我希望该值是动态的。我在顶部添加了use Carbon\Carbon,但解决方案给了我一条错误消息:“AppServiceProvider.php第26行中的FatalErrorException:Class'App\Providers\View'not found”它不起作用。我得到错误:未定义变量:month(视图:C:\Users\rra\Documents\Personal\Kino\resources\views\partials\u nav.blade.php).我想问题是我试图将变量$month传递到布局中,在所有视图之外。请参见图片,我更新了question@RafaelMunoz我添加了代码,这将pas变量传递到视图文件夹中的所有视图。现在它还将传递到扩展布局的视图。它最终成功了,但我不得不做一些更改。请参阅中的更新question@FarshidRezaei返回视图('admin.dashboard',compact('varname'));提醒不要在compact方法中使用$。我试图理解它的含义,但我不知道如何在我的解决方案中使用它。什么是键?什么是值?我需要传递一个每月动态变化的变量$month(1月,2月…)进入所有视图。我知道这不是你期望的答案,但是:)@EverytimeCob或他可以购买PHPStorm许可证,用于版本控制、远程FTP、SFTP、开发环境中的终端访问和全面的开发支持(自动完成等…)@Disfigure是的,我同意,所以MMB