不能使用Auth :: routes();在默认路由/ web.php之外

时间:2018-02-27 22:36:38

标签: laravel

我有一个简单的应用程序,在RouteServiceProvider中有一个Group ..

// Web routes
protected function mapWebRoutes()
{
    Route::group(['domain' => 'example.com']), function()
    {
        Route::middleware('web')
            ->namespace($this->namespace);
            ->group(base_path('routes/web.php'));
    });


     // Match any other domains or subdomains
    Route::group(['domain' => '{domain}'], function()
    {
        Route::middleware('web')
            ->namespace($this->namespace)
            ->group(base_path('routes/org.php'));
    });

}

routes/web.php我可以致电Auth::routes();罚款;

但在routes/org.php我的视图中缺少必需参数,需要命名的auth路由(默认为laravel)

  

"缺少[路线:登录] [URI:登录]所需的参数。 (查看:... / resources / views / layouts / loginmenu.blade.php)(查看:.."

1 个答案:

答案 0 :(得分:0)

问题不是Auth :: routes函数,而是{domain}通配符没有在路由中设置域的事实(就像没有通配符那样)

要使用默认身份验证路由命名约定,您必须更新视图以包含名称旁边的域参数。

示例:

{{ route('login') }}

需要

{{ route('login', ['domain'=>$domain]) }}

您必须在视图中使用Domain变量。最简单的方法(而不是像疯子那样在控制器周围传递它只是简单地与视图共享域变量。

在我的Controller的构造函数中的中间件中,我调用:

view()->share('domain', $domain);