【发布时间】:2021-03-30 12:26:02
【问题描述】:
我在 api.php 中有这些行
Route::apiResources([
'users' => 'Api\UserController',
'products' => 'Api\ProductController',
'categories' => 'Api\CategoryController',
]);
Route::get('/users/custom1', 'Api\UserController@custom1');
当我按此顺序获取它们并调用路由时,我得到 404 Not Found。
但是当我改变顺序时,我得到了结果:
Route::get('/users/custom1', 'Api\UserController@custom1');
Route::apiResources([
'users' => 'Api\UserController',
'products' => 'Api\ProductController',
'categories' => 'Api\CategoryController',
]);
这种情况让我很沮丧,因为我认为错误源于模型和查找方法:
public function custom1()
{
$user2 = User::find(2);
return $user2;
}
因为我在 Postman 中检查结果,当您要求 application/json 作为响应时,它会显示如下错误:
{
"message": "No query results for model [App\\User] custom1",
"exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
"file": "C:\\wamp64\\www\\laravel-api\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Exceptions\\Handler.php",
"line": 204,
"trace": [
{...
这种变化的原因是什么?
因为在这两种情况下我都可以在 route:list 中看到路线。
【问题讨论】:
-
请分享更多细节——“呼叫路线”是什么意思?您尝试过什么来调试该问题?
标签: laravel-routing