首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel命名路线不起作用

Laravel命名路线不起作用
EN

Stack Overflow用户
提问于 2017-03-23 18:34:46
回答 2查看 1.2K关注 0票数 4

最近我转到了Laravel5.3。

我有以下路线

代码语言:javascript
运行
复制
Route::get('/activate/token', 'AccountActivationController@activate')->name('auth.activate');

但是,当我用

代码语言:javascript
运行
复制
dd(route('auth.activate'));

我得到以下错误:

InvalidArgumentException in UrlGenerator.php第314行:路由auth.activate未定义.

它的工作原理非常好

代码语言:javascript
运行
复制
Route::get('/activate/token', [
    'as' => 'auth.activate',
    'uses' => 'AccountActivationController@activate',
]);

这是拉勒维尔5.3的新产品吗?我对Laravel本身还挺陌生的。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2021-04-25 22:33:07

对于将来遇到这种情况的人来说,这是因为您没有刷新路由器上的名称查找。

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

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

有关如何在Laravel8.x中处理它,请参见https://github.com/laravel/framework/blob/8.x/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php#L47-L50

票数 2
EN

Stack Overflow用户

发布于 2017-03-23 18:42:15

漏掉一个勾标尝试

代码语言:javascript
运行
复制
dd(route('auth.activate'));

而不是。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42984295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档