首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel中出现意外的404未找到错误(5.8)

Laravel中出现意外的404未找到错误(5.8)
EN

Stack Overflow用户
提问于 2021-03-30 20:26:03
回答 1查看 46关注 0票数 0

我在api.php中有以下代码行

代码语言:javascript
复制
Route::apiResources([
    'users' => 'Api\UserController',
    'products' => 'Api\ProductController',
    'categories' => 'Api\CategoryController',
]);

Route::get('/users/custom1', 'Api\UserController@custom1');

当我将它们按此顺序排列并调用路由时,我得到404 Not Found。

但是当我改变顺序时,我得到的结果是:

代码语言:javascript
复制
Route::get('/users/custom1', 'Api\UserController@custom1');

Route::apiResources([
    'users' => 'Api\UserController',
    'products' => 'Api\ProductController',
    'categories' => 'Api\CategoryController',
]);

这种情况让我很沮丧,因为我认为错误来自于模型和find方法:

代码语言:javascript
复制
public function custom1()
{
    $user2 = User::find(2);

    return $user2;
}

因为我在Postman中检查了结果,当您请求application/json作为响应时,它会显示如下错误:

代码语言:javascript
复制
{
    "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中看到路由。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-31 21:06:41

好了,当我更清楚地检查了route:list时,我已经意识到了原因。

Laravel按字母顺序显示route:list,但实际上我们在route文件中写入的顺序很重要,对吧?

所以,我突然想到,如果这一行先出现:

Laravel正在尝试使用custom1作为路由参数。

所以我必须在api资源路由之前定义这个特定的路由:

代码语言:javascript
复制
Route::get('/users/custom1', 'Api\UserController@custom1');

Route::apiResources([
    'users' => 'Api\UserController',
    'products' => 'Api\ProductController',
    'categories' => 'Api\CategoryController',
]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66870921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档