【问题标题】:Laravel route issuesLaravel 路由问题
【发布时间】:2018-11-20 12:22:47
【问题描述】:

我做了 laravel 电子商务,我有 100 多种不同类型的路由,我的 web.php 文件中没有任何功能,所有功能都在控制器中提供。

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

要解决这个问题,我必须将该路线移到我的 web.php 文件顶部,然后它才能工作。

的结果,将是其他路线这次会刹车!

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

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

更新

当我检查我的日志文件时,对于我的后端(管理面板)来说,这个错误是因为我已经使我的标题独一无二并且无法使相同标题的两倍fixed

另一方面,对于我的前端,我没有任何相同的 url 只是获得像 domain.co/products 这样的唯一 url,我只有一个这样的路由,但它给出了糟糕的错误,我必须将它移到顶部在我的路线列表中,这是为什么呢?

【问题讨论】:

  • 您检查过任何日志吗?在问题中发布这些详细信息
  • 我们需要查看代码来帮助你——你需要发布你正在谈论的所有部分,并打开调试,这样你就不仅仅是收到“哎呀”错误。
  • @ThomasEdwards 我正在尝试制作新的日志文件来分享结果,请耐心等待。
  • 在配置文件中启用调试以查看真正的错误。
  • 首先发布您的web.php 文件。

标签: laravel laravel-routing


【解决方案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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2014-08-14
      • 1970-01-01
      • 2012-08-16
      • 2018-12-15
      • 2019-09-11
      • 2016-03-31
      相关资源
      最近更新 更多