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

Laravel修改认证表为logins后注册仍查询users表报字段不存在错误

问题根因

你触发的SQL错误直接来自注册逻辑的邮箱唯一性校验规则配置错误,还有几处关联的认证逻辑配置不匹配问题,逐一修复即可:


修复步骤

1. 修正邮箱唯一性校验的表名

打开app/Http/Controllers/Auth/RegisteredUserController.php,找到store方法里的验证规则,将email字段的unique:users改为unique:logins,指定校验logins表而非默认的users表:

// 修改前
'email' => 'required|string|email|max:255|unique:users',
// 修改后
'email' => 'required|string|email|max:255|unique:logins',

2. 修正Login模型的继承关系

你的Login模型作为认证系统的用户提供方模型,需要继承认证基类而非普通模型,修改app/Models/Login.php代码:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;

class Login extends Authenticatable
{
    use HasFactory, Notifiable;

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

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

3. 统一认证主体

你当前auth配置指定的认证提供方是Login模型,但注册后调用Auth::login()传入的是User实例,会导致后续登录校验异常,调整为传入Login实例:

// 原代码
Auth::login($user);
// 修改后
Auth::login($login);

4. 修正User模型字段名大小写错误

User模型的$fillable里写的logInID和你创建User时传入的loginID大小写不一致,会导致关联ID写入失败,修改app/Models/User.php的fillable配置:

protected $fillable = [
    'name',
    'address',
    'irdNum',
    'phone',
    'loginID'
];

5. 清理配置缓存

运行命令清理Laravel的配置缓存,避免旧配置残留影响:

php artisan config:clear

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 13:36:00