Laravel调用route()返回路由提示未定义错误的技术咨询
解决Laravel route()函数提示“route not defined”的问题
嘿,我来帮你理清这个问题的核心~你确实误解了route()函数的用法:这个函数是通过「路由名称」来生成URL的,而不是路由的访问路径。
你遇到报错的原因很简单:你没有给/create路由设置对应的名称,所以Laravel找不到名为create的路由,自然就抛出“route create not defined”的错误了。
正确的做法:给路由添加名称
你需要用->name()方法给路由指定一个名称,这样route()函数才能精准找到它。修改你的路由代码如下:
// 给/create路由设置名称为create Route::get('/create', function(){ // 现在这里调用route('create')就能正常返回当前路由的URL了 return route('create'); })->name('create'); // 你的/blob1路由现在也能正常工作了 Route::get('/blob1', function(){ return route('create'); });
额外小提示
- 如果只是想直接生成某个路径的URL,你也可以用
url('/create'),但命名路由的优势在于:以后如果需要修改/create这个路径,只要路由名称不变,所有调用route('create')的地方都不用修改,灵活性更高。 - 命名路由的名称可以自定义,不一定和路径一致,比如你也可以写成
->name('user.create'),只要调用时用route('user.create')对应上就行。
内容的提问来源于stack exchange,提问作者Ian
相关产品推荐
相关产品推荐

