【问题标题】:Laravel - 404 Not Found when trying any endpointLaravel - 尝试任何端点时找不到 404
【发布时间】:2019-11-16 20:57:22
【问题描述】:

我刚刚创建了一个 Laravel 项目并通过 Insomnia 测试了第一个端点,然而,这总是返回 404。

在项目目录中,我安装了valet 并使用了它的 URL,然后每当我通过 Insomnia 运行请求时都会返回 404。

此外,当我从项目目录运行 valet open 时,这会打开一个带有 Laravel 主页的网页,这让我认为 valet 工作正常。

api.php

Route::group([
  'middleware' => 'api',
  'prefix' => 'auth'
], function ($router) {
  Route::post('register', 'AuthController@registerUser');
  Route::get('', 'AuthController@testing');
});

AuthController.php

public function registerUser()
{
  return response()->json('User signed up');
}

public function testing()
{
  return response()->json('Test ok');
}

上面截断的代码是我目前使用的路径,它应该简单地转到 AuthController 文件并运行 registerUser 方法。

我在 Insomnia 上所做的是:

【问题讨论】:

  • 您还尝试过哪些其他端点?你能在那个控制器方法中展示你在做什么吗..你在哪里注册了这条路线?
  • @lagbox 在函数中,我只是返回一条消息,以确保至少请求通过,顺便说一句,我也更新了问题。
  • 您是说所有端点都返回 404,您还尝试了哪些其他端点?你在哪里定义了你上面的这条路线?
  • 所以第一个是/auth/register POST请求,第二个是/auth GET请求,都返回404,都是在api.php文件中定义的。请查看更新后的帖子,所有信息都在那里
  • 在 AuthController.php 上缺少 '

标签: php laravel laravel-valet


【解决方案1】:

您的路由可能不是您认为的 URL。他们可能是:

mentorme-api.test/api/auth
mentorme-api.test/api/auth/register

routes/api.php 文件被加载到带有前缀 api 的路由组中。

从命令行运行 php artisan route:list 以查看您的路线是如何注册的。

routes/api.php 路由加载到的组定义:

Route::prefix('api')
     ->middleware('api')
     ->namespace($this->namespace)
     ->group(base_path('routes/api.php'));

api 为前缀并且已经应用​​了api 中间件。您可以从 2 条路线的组定义中删除 'middleware' => 'api'

【讨论】:

  • 你是对的,通过在 url 中包含 api 就可以了,上帝,我精神了一段时间!谢谢朋友
  • 没问题...这些路由文件如何注册在app/Providers/RouteServiceProvider.php btw
  • 是的,我刚刚对文件进行了更改,一切正常!再次感谢您!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-25
  • 2013-02-23
  • 1970-01-01
  • 1970-01-01
  • 2019-04-18
  • 1970-01-01
  • 2011-02-18
相关资源
最近更新 更多