restful 路由或者路由分组问题

Route::group([
    'middleware'  =>  ['auth:sanctum']
],  function  ()  {
    // 货物
    Route::resource('cargo', CargoController::class);
    Route::get('/cargo/options', [CargoController::class, 'options']);
});

在采用了restful路由的控制器内添加一个options接口 请求报错

public function options()
{
    dd(1);
}
"message": "No query results for model [App\\Models\\Cargo] options",

我不清楚是因为路由组还是restful API
只要把下边这个路由移出权限路由组就可以正常查询到数据

Route::get('/cargo/options', [CargoController::class, 'options']);

Route::group([
    'middleware'  =>  ['auth:sanctum']
],  function  ()  {
    // 货物
    Route::resource('cargo', CargoController::class);
});
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

路由冲突了,到不了 /cargo/options,被前面的 GET /cargo/{cargo} 劫持了,换个顺序放到前面就好了,和分组没关。

4个月前 评论
肌无力猛男 (楼主) 4个月前
肌无力猛男 (楼主) 4个月前
讨论数量: 5

路由冲突了,到不了 /cargo/options,被前面的 GET /cargo/{cargo} 劫持了,换个顺序放到前面就好了,和分组没关。

4个月前 评论
肌无力猛男 (楼主) 4个月前
肌无力猛男 (楼主) 4个月前
yjrowe

加个where,Route::resource('cargo', CargoController::class)->where(['cargo' => '[0-9]+']);

4个月前 评论
肌无力猛男 (楼主) 4个月前

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