最近我改用了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本身很新。
谢谢。
答案 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 中的处理方式