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

Laravel创建租户时触发SQLSTATE[42S22未知列错误排查求助

问题原因

报错直接来源于StoreTenantRequest.php中配置的邮箱唯一性验证规则语法错误:unique:Users,后面未指定要校验的字段名,导致Laravel生成校验SQL时,where条件的字段位为空,才会出现where `` = meco@mailinator.com的错误SQL语句。

此外你的域名唯一性校验规则也存在语法不规范的问题,同时存在几处潜在代码错误会引发后续问题。

解决方法

1. 修复表单验证规则

修改StoreTenantRequest.php的rules方法如下:

public function rules()
{
    return [
        'name' => 'required',
        // 统一使用Laravel默认的小写表名users,指定校验email字段
        'email' => 'email|required|unique:users,email',
        // 指定domain校验对应的表字段为domain
        'domain' => 'required|unique:users,domain',
    ];
}

2. 修复其他潜在问题

  • 检查User模型的$fillable属性,确保已经添加name、email、domain三个字段,否则User::create会自动过滤未配置的字段导致写入失败:
// User模型中配置
protected $fillable = [
    'name', 'email', 'password', 'role_id', 'domain'
];
  • create.blade.php中域名输入框的autocomplete属性写错,可改为autocomplete="domain"避免浏览器自动填充异常
  • 注意控制器命名拼写:你贴的代码里控制器名写为TenentController,正确拼写应为TenantController,需和web.php路由里的引用保持一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:06:02