Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.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将特定参数传递给所有视图中的所有管线_Php_Laravel - Fatal编程技术网

Php Laravel将特定参数传递给所有视图中的所有管线

Php Laravel将特定参数传递给所有视图中的所有管线,php,laravel,Php,Laravel,我需要向所有视图传递一个子域名,这样当它们生成带有route('namedLote')的路由时,用户将在同一个子域中结束 我最终创建了一个ViewServiceProvider,它注册了一个从请求中获取子域的文件,如下所示: use Illuminate\Support\Facades\View as FView; use Illuminate\View\View; class ViewServiceProvider extends ServiceProvider {

我需要向所有视图传递一个子域名,这样当它们生成带有
route('namedLote')
的路由时,用户将在同一个子域中结束

我最终创建了一个
ViewServiceProvider
,它注册了一个从请求中获取子域的文件,如下所示:

    use Illuminate\Support\Facades\View as FView;
    use Illuminate\View\View;

    class ViewServiceProvider extends ServiceProvider {
         FView::composer('*', function(View $view){
             $view->with('subdomain', request()->route()->subdomain);
         });
    }
通过这种方式,子域变量将每次传递到每个单视图,这要归功于中所述的
'*'

然后,当我需要在任何视图中生成任何路由时,我将始终必须像这样通过子域,并且路由将正确生成

    {{ route('signInPage', ['subdomain' => $subdomain]) }}

那么,在laravel中是否有什么东西(如
后视图处理
)可以让我自动连接到子域中,这样我就不必现在修改每个视图中的每个路由生成?

URL生成器可以采用默认值,这样在生成URL时就不必传递路由参数:

URL::defaults(['subdomain' => ....]);
您可以创建一个路由中间件,从请求中获取
子域
参数并设置此默认值


这听起来比我做的还要好,我会读一读,试试看。谢谢没问题,如果文档中的示例还不够,我可以提供一些代码,祝你好运:)我现在只有一个问题,因为中间件中的某些原因,我将调用此URL::defaults,对于
request()->route()
,我得到null,因此,如果试图找出我是否做错了什么,或者如何从urli获取子域,我将使其成为路由中间件,并将其应用到路由所在的任何组中。。您还可以使用
$request->route('subdomain')
尝试检索参数。。。另外,您使用的是什么版本的Laravel?我最终将其添加到应用程序的路由中间件“web”组中,这样它将自动应用于web.php中定义的所有路由