Laravel路线问题

时间:2018-06-11 09:33:01

标签: laravel laravel-routing

我已经制作了laravel电子商务,其中我有100多种不同类型的路线,而我的web.php文件中没有功能在控制器中提供所有功能。

我面临的问题是我的一条路线停止运作并将我重定向到whoops, looks like something went wrong页。

要解决此问题,我必须将该路线移至我的web.php文件的顶部,然后才能正常工作。

的结果将是其他路线将会制动这次!

我不可能每秒改变路线位置!!

我该如何解决这个问题?有经验吗?

更新

当我检查我的日志文件时,我的后端(管理面板)发生了错误,因为我的标题是唯一的,并且不能使同一标题加倍fixed

另一方面,对于我的前端,我没有任何类型的相同网址只是得到像domain.co/products这样的唯一网址,我只有一条这样的路线,但它给了哎呀错误,我必须把它移到我的路线列表的顶部,为什么会这样?

2 个答案:

答案 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文档中的路由的更多信息

https://laravel.com/docs/5.6/routing

答案 1 :(得分:0)

如果您有2条相同地址的路线更改它们并获得更多帮助,请将您的web.php文件发送给我们