419 Laravel 11 注册时出错

问题描述 投票:0回答:1

当我尝试提交表单(在本例中为注册表单)时,我在新安装的

laravel 11
vue
中遇到以下错误。

419 |页面已过期

我已经检查了这个问题,是的,我的注册表中有

@csrf
并且

<meta name="csrf-token" content="{{ csrf_token() }}">

重现步骤

  1. 我安装了
    laravel 11
    的新实例:
 composer create-project laravel/laravel test
 cd test/
  1. 我添加了
    laravel/ui
 composer require laravel/ui
  1. 我添加了 vue 和 auth ui
 php artisan ui vue --auth

它给了我一个警告:

[Controller.php] 文件已存在。你想更换它吗? (是/否)[是]

我输入了

yes
然后
[Enter]

  1. 我安装了
    npm
    软件包并初始化了
    vite
 npm install && npm run dev
  1. 初始化开发服务器并尝试注册
 php artisan serve

编辑 在同一

repo
上还完成了其他步骤。我们使用
mongodb
,因此我们还添加了 Mongodb 配置。

  1. 安装了
    laravel/mongodb
    软件包
 composer require mongodb/laravel-mongodb
  1. config/database.php
    中添加如下配置:
  ...
 'mongodb' => [
          'driver' => 'mongodb',
          'host' => env('DB_HOST', '127.0.0.1'),
          'port' => env('DB_PORT', 27017),
          'database' => env('DB_DATABASE', 'assets'),
          'username' => env('DB_USERNAME', ''),
          'password' => env('DB_PASSWORD', ''),
          'options' => [
              'database' => env('DB_AUTHENTICATION_DATABASE', 'admin'),
          ],
      ],

  ...
  1. 更新的 .env 文件如下所示:

DB_CONNECTION=mongodb
DB_HOST=127.0.0.1
DB_PORT=27017
DB_DATABASE=testdb
DB_USERNAME=
DB_PASSWORD=
...

我希望有人能提供解决方案。

NB我尝试安装

laravel 10
并执行相同的过程,它运行得很好。
laravel 11
发生了什么变化?如有任何帮助,我们将不胜感激。

编辑 以下是我的内容

bootstrap/app.php

<?php

use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;

return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(
        web: __DIR__.'/../routes/web.php',
        commands: __DIR__.'/../routes/console.php',
        health: '/up',
    )
    ->withMiddleware(function (Middleware $middleware) {
        //
    })
    ->withExceptions(function (Exceptions $exceptions) {
        //
    })->create();

register.blade.php

<form method="POST" action="{{ route('register') }}">
  @csrf
    <div class="row mb-3">
    // Rest of code
php laravel laravel-11 laravel-ui laravel-mongodb
1个回答
0
投票

虽然问题没有明确提及,但我相信您也已将默认数据库切换为 MongoDB。

由于安装后是这样设置的,因此可能需要重新生成会话表。

在 Laravel 11 中,该命令会由

php artisan migrate
自动执行,但它是在安装 MongoDB 之前执行的。我假设迁移到新数据库后,您需要单独重新运行
migrate
命令。否则只能手动创建会话表。

php artisan make:session-table

更多信息

© www.soinside.com 2019 - 2024. All rights reserved.