【问题标题】:how to solve Laravel routes conflict如何解决 Laravel 路由冲突
【发布时间】:2018-12-12 17:19:10
【问题描述】:

这是一个在 laravel 中搜索的简单代码。 路线“产品”完全没有问题,但是, 当我使用路由“searchproduct”时,浏览器中的 url 如下所示:

http://example.com/application/public/product/search?q=red+dead

所以应用程序认为我正在尝试获取路由“product”并将参数 urlkey 发送为“search?q=red+dead”,这当然会引发错误。

查看

<form method="GET" action="{{ route('searchproduct') }}" >
    <input id="q" name="q" class="q" type="text" />
    <button type="submit" id="submitButton" class="btn btn-primary">Go</button>

</form>

路线

Route::get('product/{urlkey}','ProductController@index')->name('product');
Route::get('product/search/{q?}','ProductController@search')->name('searchproduct');

请问这个问题怎么解决?

【问题讨论】:

  • 切换路由的顺序,使其在“通配符”路由之前匹配指定的“搜索”路由。
  • 哦,就这样 :D

标签: php mysql laravel laravel-5 routes


【解决方案1】:

按顺序定义路线

Route::get('product/search/{q?}','ProductController@search')->name('searchproduct');
Route::get('product/{urlkey}','ProductController@index')->name('product');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-15
    • 2018-05-23
    • 1970-01-01
    • 2011-12-03
    • 2018-11-30
    • 2015-09-27
    • 1970-01-01
    • 2013-03-01
    相关资源
    最近更新 更多