Laravel 路线问题:"No query results for model"
Laravel route issue: "No query results for model"
我对 ROUTE 在这些情况下的工作方式感到很困惑。
我定义了这样的路由组合:
Route::apiResource('users', 'UserController');
Route::get('users/{user}/tasks', 'UserController@tasks');
一切都很好。没有任何问题。
但是
我对另一个模型做了同样的事情:
Route::apiResource('tasks', 'TaskController');
Route::get('tasks/calendar', 'TaskController@calendar');
对于这个组合,我得到了 NotFoundHttpException :/
{
"message": "No query results for model [App\Models\Task] calendar",
"exception": "Symfony\Component\HttpKernel\Exception\NotFoundHttpException", ...
如果我更改 URI,例如 'task/calendar',那么它会起作用。
我错过了什么?
感谢您的帮助。
Route::get('tasks/calendar', 'TaskController@calendar');
必须移到上面:
Route::apiResource('tasks', 'TaskController');
可以工作,因为 apiResource
在到达 tasks/calendar
路由之前公开匹配的 tasks/{task}
路由。
该订单不会导致用户路由出现问题:
Route::get('users/{user}/tasks', 'UserController@tasks');
因为它有一个额外的 url 段 (/tasks
) 可以防止它与 users/{user}
冲突。
使用 php artisan route:list
查看您当前的路线。
我对 ROUTE 在这些情况下的工作方式感到很困惑。
我定义了这样的路由组合:
Route::apiResource('users', 'UserController');
Route::get('users/{user}/tasks', 'UserController@tasks');
一切都很好。没有任何问题。 但是
我对另一个模型做了同样的事情:
Route::apiResource('tasks', 'TaskController');
Route::get('tasks/calendar', 'TaskController@calendar');
对于这个组合,我得到了 NotFoundHttpException :/
{
"message": "No query results for model [App\Models\Task] calendar",
"exception": "Symfony\Component\HttpKernel\Exception\NotFoundHttpException", ...
如果我更改 URI,例如 'task/calendar',那么它会起作用。 我错过了什么?
感谢您的帮助。
Route::get('tasks/calendar', 'TaskController@calendar');
必须移到上面:
Route::apiResource('tasks', 'TaskController');
可以工作,因为 apiResource
在到达 tasks/calendar
路由之前公开匹配的 tasks/{task}
路由。
该订单不会导致用户路由出现问题:
Route::get('users/{user}/tasks', 'UserController@tasks');
因为它有一个额外的 url 段 (/tasks
) 可以防止它与 users/{user}
冲突。
使用 php artisan route:list
查看您当前的路线。