【问题标题】:Laravel 5.2 route with multiple parameters具有多个参数的 Laravel 5.2 路由
【发布时间】:2016-10-12 12:20:58
【问题描述】:

更新:感谢以下建议。当我直接从浏览器中点击它时,该 URL 可以正常工作。下面我理解为正确的语法建议是:

{{ route('my.route', ['p1' => $var1, 'p2' => $var2, 'p3' => $var3]) }}

但我可以在检查中看到这一点被解析为:

http://my.url/theroute/var1?var2=xxx&var3=yyy 

路由格式未正确生成,变量作为 URL 参数传递,而不是像这样作为 URL 的一部分:

http://my.app/var1/var2/var3

另外,我想使用命名路由,而不是对 URL 进行硬编码。如果我硬编码它,它工作正常。我错过了什么?谢谢!


我的 Laravel 应用中有一条如下所示的路线:

http://my.app/{p1}/{p2}/{p3}

路由在路由列表中被命名为my.route。

在Blade 我正在尝试打开这条路线。我该怎么做呢。我尝试过不成功:

{{ route(['my.route', $var1, $var2, $var3]) }}

还有

{{ route(['my.route', 'p1' => $var1, 'p2' => $var2, 'p3' => $var3]) }}

还有

{{ route('my.route', ['p1' => $var1, 'p2' => $var2, 'p3' => $var3]) }}

【问题讨论】:

    标签: php laravel-5.2


    【解决方案1】:

    问题出在我的路线定义中。我有另一条路线与我试图访问的路线冲突。感谢大家的帮助!

    正确的语法是:

    route('my.route', [$var1, $var2, $var3])
    

    【讨论】:

      【解决方案2】:
      {{ route('my.route', ['p1' => $var1, 'p2' => $var2, 'p3' => $var3]) }}
      

      以上是正确的。但我认为你不能使用 my.route 作为路由名称,删除点并放置下划线。

      或者只是将 url 用作纯文本。 href='/my.app/'{p1}/{p2}/{p3}

      请看这里https://laravel.com/docs/5.2/routing#named-routes

      【讨论】:

      • 路线名称中的点很好。
      • 也尝试直接从浏览器中点击url,看看是否有任何错误。
      猜你喜欢
      • 1970-01-01
      • 2016-08-30
      • 2017-04-04
      • 2014-05-04
      • 2018-04-06
      • 2014-11-27
      • 2019-09-19
      • 2020-05-31
      • 1970-01-01
      相关资源
      最近更新 更多