Laravel将路线命名为无效

时间:2017-03-23 18:34:46

标签: php laravel-5

最近我改用了Laravel 5.3。

我有以下路线

Route::get('/activate/token', 'AccountActivationController@activate')->name('auth.activate');

但是,当我使用

dd(route('auth.activate'));

我收到以下错误:

UrlGenerator.php第314行中的InvalidArgumentException:路由[auth.activate]未定义。

完美搭配
Route::get('/activate/token', [
    'as' => 'auth.activate',
    'uses' => 'AccountActivationController@activate',
]);

这是Laravel 5.3中的新功能吗?我对Laravel本身很新。

谢谢。

2 个答案:

答案 0 :(得分:0)

缺少刻度线 尝试

dd(route('auth.activate'));

代替。

答案 1 :(得分:0)

对于将来遇到此问题的任何人,这是因为您没有在路由器上刷新名称查找。

Laravel 5.2 添加了 fluent 方法 name($name) 作为 ['as' => $name] 的快捷方式替代,但是 name($name) 方法要求在您的路由注册后的某个时刻调用 $router->getRoutes()->refreshNameLookups();以便在内部实际完成该映射。

在当前形式中,示例 laravel/laravel 包中实现的 RoutingServiceProvider 在幕后为您处理此问题,但如果您以任何自定义方式加载路由,则需要触发刷新在适当的时候自己。

请参阅 https://github.com/laravel/framework/blob/8.x/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php#L47-L50 了解 Laravel 8.x 中的处理方式