Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.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
Php Laravel 5.6从中间件将变量传递到视图_Php_Laravel_Laravel Blade - Fatal编程技术网

Php Laravel 5.6从中间件将变量传递到视图

Php Laravel 5.6从中间件将变量传递到视图,php,laravel,laravel-blade,Php,Laravel,Laravel Blade,有没有办法通过中间件将变量传递给视图? 我可以使用会话来执行此操作,但这并没有解决我的问题,因此我请求执行此操作。您可以将变量合并到请求中,从控制器上的请求读取变量,然后将其传递到视图 例如,在中间件中: 公共函数句柄($request,Closure$next) { $foo='bar'; $request->merge(compact('foo')); 返回$next($request); } 在控制器上: public function create(Request $request)

有没有办法通过中间件将变量传递给视图?

我可以使用会话来执行此操作,但这并没有解决我的问题,因此我请求执行此操作。

您可以将变量合并到请求中,从控制器上的请求读取变量,然后将其传递到视图

例如,在中间件中:

公共函数句柄($request,Closure$next)
{
$foo='bar';
$request->merge(compact('foo'));
返回$next($request);
}
在控制器上:

public function create(Request $request)
{
    $foo = $request->foo;
    return view('my.view', compact('foo'));
}

然后在视图上,您可以引用它,例如,
{{$foo}

中间件用于修改请求

如果您有一些用于每个视图的动态数据,那么最好使用服务提供者而不是中间件

例如,您可能在每个页面上都有一些元数据,每个视图都包含一个
header.blade.php
,它可能如下所示:

<head> <meta name="{{$meta_key}}" content="{{$meta_desc}}"> </head>

您也可以通过将composer中的“视图”替换为要发送数据的路径来检查本教程

i、 e.如果您想发送到partials文件夹中的header.blade.php,则将“视图”替换为“partials.header”

在为我参考并遵循以下代码后:

\app\Providers\AppServiceProvider.php

boot()函数中添加以下代码:-

 view()->composer('partials.header', function ($view) {
            //

            $view->with('your_key', 'your_value');
        });
现在,您的数据可以在项目\u名称\resources\views\partials\header.blade.php中找到

{{$your_key}}



你的要求是什么?你想在所有视图中共享任何共同的价值吗?不是全部,只是其中的一部分。不可能!您甚至无法从中间件返回视图。因此,如果可能,您可以使用会话。如果我想将需要请求数据库和memcached的动态数据添加到所有视图,我应该使用中间件还是服务提供商?@shintaroid service provider。谢谢兄弟!顺便问一下,在左边的问题中有一些答案建议使用中间件(如果我没有误解这个问题的话),您认为中间件也是一种解决方案吗?
{{$your_key}}
<?php echo $your_key; ?>