Laravel 具有哈希和slug参数的路由模型绑定路由

Laravel 具有哈希和slug参数的路由模型绑定路由,laravel,model,routes,Laravel,Model,Routes,假设我有一些路线: Route::get('items', 'ItemController@index')->name('item.index'); Route::get('items/{hash}/{slug}', 'ItemController@show')->name('item.show'); 在使用路由模型绑定时,我希望处理以下情况: /items/永久重定向到正确的哈希和slug /items/永久重定向到正确的哈希和slug 其他内容重定向到/items/ 我

假设我有一些路线:

 Route::get('items', 'ItemController@index')->name('item.index');
 Route::get('items/{hash}/{slug}', 'ItemController@show')->name('item.show');
在使用路由模型绑定时,我希望处理以下情况:

  • /items/
    永久重定向到正确的哈希和slug
  • /items/
    永久重定向到正确的哈希和slug
  • 其他内容重定向到
    /items/
我目前了解路由模型绑定的快捷方式好处,它减少了控制器代码,但通常用于简单的
/items/{id}
情况。是否可以扩展我的案例中显示的内容?或者我应该放弃整个模型绑定方法,回到caveman控制器逻辑

目前,文档一次只能绑定一个参数,而不是组合:

    Route::bind('user', function ($value) {
        return App\User::where('name', $value)->first() ?? abort(404);
    });

AFAIK无法使用多个参数定义路由模式绑定(隐式或显式)。我认为这是一条很难遵循的路线,您将不得不与大量已经编写的代码作斗争,RESTful资源通常遵循一个参数的方式,即id或slug。@dparoli我同时做了一些搜索,显然可能有多个参数。我会试试这个,看看5.8版是否正确。祝你好运,如果你解决了,你可以回答你自己的问题。