You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Breeze默认注册所有字段提示必填错误求助

Laravel Breeze注册表单填完仍提示所有字段必填的问题

时隔两年重拾Laravel,用Laravel Breeze默认配置实现用户注册时,填写了完整且正确的表单信息后,所有字段仍被提示“必填”,无法完成注册。

以下是相关代码文件:

Blade视图文件

<!-- 粘贴你的注册页Blade代码 -->

RegisteredUserController代码

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use App\Models\User;
use App\Providers\RouteServiceProvider;
use Illuminate\Auth\Events\Registered;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Validation\Rules;
use Illuminate\View\View;

class RegisteredUserController extends Controller
{
    public function create(): View
    {
        return view('auth.register');
    }

    public function store(Request $request): RedirectResponse
    {
        $request->validate([
            'name' => ['required', 'string', 'max:255'],
            'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
            'password' => ['required', 'confirmed', Rules\Password::defaults()],
        ]);

        $user = User::create([
            'name' => $request->name,
            'email' => $request->email,
            'password' => Hash::make($request->password),
        ]);

        event(new Registered($user));
        Auth::login($user);

        return redirect(RouteServiceProvider::HOME);
    }
}

User Model代码

<?php

namespace App\Models;

use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens, HasFactory, Notifiable;

    protected $fillable = [
        'name',
        'email',
        'password',
    ];

    protected $hidden = [
        'password',
        'remember_token',
    ];

    protected $casts = [
        'email_verified_at' => 'datetime',
        'password' => 'hashed',
    ];
}

排查及解决步骤

  • 检查表单字段name属性:确认Blade表单中输入框的name属性与控制器验证规则里的字段名完全匹配(如name="name"、name="email"、name="password"、name="password_confirmation"),属性名错误会导致后端接收不到值,触发必填验证。
  • 确认表单提交配置:表单必须使用POST方法,且正确添加@csrf令牌,避免CSRF验证失败导致请求被拦截,引发验证逻辑异常。
  • 查看实际请求数据:在store方法开头添加dd($request->all()),检查后端实际接收的请求数据是否为空。若为空,需排查表单提交路径是否错误,或是否有前端JS阻止了表单正常提交。
  • 核对版本兼容性:确认Laravel版本与Breeze版本匹配(如Laravel 11对应Breeze 2.x),版本不兼容可能导致默认配置存在差异。
  • 清除缓存:执行php artisan config:clear和php artisan view:clear,清除配置与视图缓存,避免旧配置干扰。

内容的提问来源于stack exchange,提问作者Stef Verniers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 17:56:02