在默认路由/ web.php之外的视图中不能使用routes('name')函数

问题描述 投票:2回答:1

我有一个使用WEB中间件(如默认)的组,但有自己的routes/org.php文件;

来自RouteServiceProvider.php:

protected function mapWebRoutes()
{

    // Match my own domain FIRST
    Route::group(['domain' => 'a.example','www.a.example', 'admin.a.example'], function()
    {
        // Original Web Route
        Route::middleware('web')
             ->namespace($this->namespace)
             ->group(base_path('routes/web.php'));
    });



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

}

```

routes/org.php我有Route::get('/test', 'OrgTestCtrlr@test')->name('test');

有关信息:

OrgTestCtrlr extends OrgBaseCtrlr

.. OrgBaseCtrlr extends Controller(默认laravel控制器)

(所以基本上OrgTest扩展了OrgBase扩展Controller)

我的public function test() { return view('org.test'); }功能

../views/org/test.blade.php中调用刀片文件

在这个文件中我尝试有一个{{ route('test') }}参考

我收到这个错误

“缺少[Route:test] [URI:test]所需的参数。”

*我已经移动了命名空间,试图不要多次扩展控制器等等,我只是在追逐我的尾巴。请指教。

laravel laravel-5 laravel-5.5
1个回答
1
投票

你也需要传递域名:

{{ route('test', ['domain' => 'some_domain']) }}

另外,将方法更改为:

public function test($domain) {
    return view('org.test');
}
© www.soinside.com 2019 - 2024. All rights reserved.