关于 apiResources 资源路由退回的问题

Route::post('users/login','UsersController@login');//用户登录
Route::get('/users/info','UsersController@info');//获取账号信息

Route::apiResources([
    'users' => 'UsersController',
]);

使用apiResources定义路由后自动生成

GET /photos     photos.index
POST    /photos     photos.store
GET /photos/{photo}     photos.show
PUT/PATCH   /photos/{photo}     photos.update
DELETE  /photos/{photo}    photos.destroy

但是现在问题来了。
GET请求 /users/info 访问到的是 获取账号信息。
GET请求 /users/infossss 访问到的是 photos.show。 但是根本就没定义这个路由啊。而且photos.show不是应该是使用user_id的吗??

如何能实现匹配不到定义的路由跳转指定的页面?不能使用fallback(回退路由),因为它是以闭包形式定义的。我想使用route:cache。

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 7

应该是请求 /users/infossss 时,把 infossss 传给了 {users},因为路由有绑定模型功能,他会自动查询 user_id,结果查询不到有关 infossss 的模型,才会出现 404,建议定义一个 404 Http异常拦截进行后退跳转

5年前 评论

@畅畅 大佬,现在是不会出现404页面呀。访问users/inofsss这个路由相当于直接访问了users/{users}这个路由了

5年前 评论

@carveybunt 按路由规则来说,这是对着的呀

5年前 评论

@carveybunt 不妨可以尝试一下将 apiResources 资源路由置与前两个路由上面?

5年前 评论

@畅畅 额,貌似是我没绑定模型。但是我不能采用隐式绑定模型,不然我无法使用,路由缓存。
如果采用显示绑定的话,还要手动一个一个的去RouteServiceProvider中定义呀?

5年前 评论

@carveybunt 隐式绑定和缓存无关奥,并不用将使用闭包在路由文件中写,写在控制器中也是一样的

public function show(Users $users)
{
    //Code
}
5年前 评论

@畅畅 多谢 我试试。主要的是我使用JWT做的验证。

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!