当我try 提交表格(在本例中为注册表格)时,我在新安装的laravel 11vue中遇到以下错误.

419 |页面过期

我已经判断了这question,是的,我的登记表中确实有@csrf

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

Steps to reproduce

  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. 已初始化开发服务器并try 注册
 php artisan serve

Edit 还对同一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. 更新了. dev文件,如下所示:

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

我希望有人有解决方案.

NB我try 安装laravel 10并执行相同的过程,它工作得很完美.laravel 11发生了什么变化?任何帮助都是感激的.

Edit 以下是我的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

推荐答案

您似乎正在使用database驱动程序作为会话驱动程序.这是自Laravel 11以来的默认情况.

我确信这个问题与MongoDB有关,但我建议您使用file会话驱动程序,您可以通过将.env文件中的SESSION_DRIVER变量设置为file来做到这一点:

SESSION_DRIVER=file

无论如何,就您的情况而言,我不明白为什么您需要使用数据库来存储您的会话.使用文件系统要快得多,而且负担要小得多.

Php相关问答推荐

使用额外的输入字段自定义WooCommerce单个产品

允许Laravel路由指定`withTrashed`,尽管有显式的模型绑定

如何使用属性#[Embedded]嵌入带有规则的对象集合?

PHP FFI—将PHP数组转换为C指针数组

如果再次调用SESSION_START(),会话.gc-max是否会重新启动?或者它是从第一次创建会话开始计算的?

在WooCommerce中禁用客户用户角色的纳税计算

Laravel POST方法返回状态:POST方法上不允许使用405方法

在冲突和几何上插入的Postgres参数化查询在PHP中不起作用

返回WooCommerce中的所有已启用变体

如何在微软图形API中使用用户S访问令牌或基于租户ID的访问令牌?

防止同时从Laravel中的用户帐户中提取

htaccess 重定向子域错误的 url

WooCommerce 有关新订单的附加邮箱通知,其中包含具体详细信息

后退按钮不起作用 laravel ajax crud

根据WooCommerce中选定的变体重量更改输入数量步值

仅在管理员新订单通知中显示WooCommerce订单商品自定义元数据

如何在构建 PHP 类别数组树的递归函数中将父面包屑传递给子项?

php如何删除括号内的百分比值

自定义错误页面不适用于 Apache 和 nginx 设置的 .htaccess

将样式文件或脚本引入WordPress模板