我已经制作了laravel电子商务,其中我有100多种不同类型的路线,而我的web.php
文件中没有功能在控制器中提供所有功能。
我面临的问题是我的一条路线停止运作并将我重定向到whoops, looks like something went wrong
页。
要解决此问题,我必须将该路线移至我的web.php
文件的顶部,然后才能正常工作。
的结果将是其他路线将会制动这次!
我不可能每秒改变路线位置!!
我该如何解决这个问题?有经验吗?
当我检查我的日志文件时,我的后端(管理面板)发生了错误,因为我的标题是唯一的,并且不能使同一标题加倍fixed
。
另一方面,对于我的前端,我没有任何类型的相同网址只是得到像domain.co/products
这样的唯一网址,我只有一条这样的路线,但它给了哎呀错误,我必须把它移到我的路线列表的顶部,为什么会这样?
答案 0 :(得分:1)
这是一个常见的问题,实际上它发生了,因为你的一条路线覆盖了下面的另一条路线检查说明
假设你有两个基于闭包的路线
Route::get('hello/{name}' , function($name){
return "hello " . $name;
});
Route::get('hello/world' , function(){
return "hello world is working";
});
正如您在上面的示例中所看到的,我的第一个路由接受一个路由参数,它将输出hello以及路径中传递的名称
例如你访问/ hello / mohammad将输出“hello mohammad”
但是只有在第二条路线中,如果有人访问hello / world,则返回“hello world is working”;但是,会返回hello world。
这是因为我们在静态路由(/ hello / world)之前定义了接受参数的路由,所以如果我们反转路由的顺序,它将按预期工作。
因此,在定义以相同路径开头的两条路线(在我们的例子中它们都以hello开头)时要记住的一条规则总是在动态路线之前定义静态路线。
这就是为什么将以相同前缀
开头的路线分组也是一个好主意希望你明白并发现我的解释很有帮助。
我建议您阅读有关Laravel文档中的路由的更多信息
答案 1 :(得分:0)
如果您有2条相同地址的路线更改它们并获得更多帮助,请将您的web.php文件发送给我们