【问题标题】:Getting 404 in laravel 6.x在 laravel 6.x 中获取 404
【发布时间】:2020-01-26 10:00:18
【问题描述】:

我在 App\Http\Controllers\Api\v1

中创建了 ApiController

还使用laravel/ui 创建了auth

默认为前端创建的功能完美运行。

但问题是尝试调用 ApiController

我的API Rout文件如下

Route::group(['prefix' => 'api/v1', 'namespace' => 'Api\v1'], function () {
  Route::post('register', 'ApiController@register');
});

我的 API 控制器看起来像

namespace App\Http\Controllers\Api\v1;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class ApiController extends Controller
{
    public function register(array $data)
    {
        return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
            'api_token' => Str::random(60),
        ]);
    }
}

在404之前是csrf错误,我已经解决了

protected $except = [
        '/register',
    ];

Http\Middleware\VerifyCsrfToken

我想不出两个问题

  1. 如何使用 $except..

  2. CSRFexcept 我的整个 api 调用>
  3. 如何解决 register 方法的 404,我使用邮递员进行 POST 请求并调用 URL http://localhost/larablog/api/v1/register

【问题讨论】:

  • @Casper 仍然得到 404

标签: php laravel laravel-6


【解决方案1】:

routes/api.php 文件中定义的路由由 RouteServiceProvider 嵌套在路由组中。在该组中,/api URI 前缀会自动应用,因此您无需手动将其应用到文件中的每个路由。您可以通过修改 RouteServiceProvider 类来修改前缀和其他路由组选项。

1) 404 错误:- 从 前缀路由 中删除 api

Route::group(['prefix' => 'v1', 'namespace' => 'Api\v1'], function () {
  Route::post('register', 'ApiController@register');
});

http://localhost/larablog/api/v1/register

1。如果您使用的是路由组:

Route::group(['prefix' => 'v1', 'namespace' => 'Api\v1'], function () {
  Route::post('register', 'ApiController@register');
});

您的 $except 数组如下所示:

protected $except = ['v1/register'];

2。如果要排除 v1 下的所有路由

您的 $except 数组如下所示:

protected $except = ['v1/*'];

【讨论】:

  • 我可以使用['v1/*'] 吗?
  • 是的,您可以查看已编辑的答案,但它会排除 v1 的所有路线。
  • 我仍然得到 404
猜你喜欢
  • 2020-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-04
  • 2020-04-19
  • 2020-04-29
  • 2020-04-14
  • 2023-03-14
相关资源
最近更新 更多