如何在拉拉维尔身份验证中自定义"email"字段?



我正在尝试自定义Laravel的身份验证字段。我成功获得了"名称"one_answers"密码"字段,但没有为"电子邮件"字段。我仍然有错误:

sqlstate [42S22]:找不到列:1054"电子邮件"字段在哪里未知 条款。

我试图依靠这一点,但它不起作用。在RegisterController,中,我将create功能更改为以下。

protected function create(array $data)
{
    return User::create([
        'user_pseudo' => $data['name'],
        'user_email' => $data['email'],
        'usr_mdp' => bcrypt($data['password']),
    ]);
}

此错误可能来自validation方法中电子邮件字段的unique验证。如果未指定列名,它将使用字段名称为列名称。

将正确的列名添加到应该搜索电子邮件的规则,此错误应消失:

registercontroller.php

protected function validator(array $data)
{
    return Validator::make($data, [
        'name' => ['required', 'string', 'max:255'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users,user_email'],
        'password' => ['required', 'string', 'min:8', 'confirmed'],
    ]);
}

最新更新