【问题标题】:Cannot use routes('name') function in view outside of default routes/web.php无法在默认路由/web.php 之外的视图中使用路由(“名称”)函数
【发布时间】:2018-03-02 22:21:01
【问题描述】:

我有一个组使用 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 扩展控制器)

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

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

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

我收到此错误

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

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

【问题讨论】:

  • 你能显示php artisan route:list的输出吗?
  • 还要注意domain组中的路由会得到一个额外的参数。如果您的测试路由在组内,它需要处理它正在通过的域,即public function test($domain)laravel.com/docs/5.6/routing#route-group-sub-domain-routing
  • @ceejayoz | {域名} |得到|头|测试 |测试 |应用\Http\Controllers\Org\OrgBaseController@test |网站,关闭 | | {域名} |得到|头|查看 |查看 |应用\Http\Controllers\Org\OrgBaseController@view |网络,关闭 |

标签: laravel laravel-5 laravel-5.5


【解决方案1】:

你也需要传递域名:

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

另外,将方法更改为:

public function test($domain) {
    return view('org.test');
}

【讨论】:

  • 使用 Controller@function 时如何调用此功能?
  • @Nick 只使用现有路由,无需修改。
  • 所以每次我想使用路由('helper')时,我都必须传入{{ route('test',['domain' => '']) }}
  • 知道是否有办法为组全局设置路由域以避免这样做?好像很脏
  • 我刚刚做了一个辅助函数来包装路由,所以 orgRoute 会自动设置域参数,完成。感谢您为我指明正确的方向)
猜你喜欢
  • 1970-01-01
  • 2016-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-25
  • 2014-01-28
  • 1970-01-01
相关资源
最近更新 更多