Laravel通过数据库记录进行验证

时间:2018-08-21 07:36:13

标签: laravel eloquent

  

问题是如何通过数据库模型进行验证,我有模型“电子邮件”。我只想让人们可以注册他们的电子邮件是否已经在我们的电子邮件模型中。

电子邮件数据库表

Schema::create('emails', function (Blueprint $table) {
        $table->increments('id');
        $table->text('username')->nullable();
        $table->text('fullname')->nullable();
        $table->text('description')->nullable();
        $table->text('email')->nullable();
        $table->timestamps();
});

Auth @ RegisterController

protected function validator(array $data)
{
    return Validator::make($data, [
        'name'     => 'required|max:255',
        'email'    => 'required|max:255|unique:users',         here i guess
        'password' => 'required|min:6|confirmed',
    ]);
}**strong text**

2 个答案:

答案 0 :(得分:1)

您尝试过规则存在吗?

exists:table,column

正在验证的字段必须存在于给定的数据库表上。

更多: https://laravel.com/docs/5.6/validation#rule-exists

答案 1 :(得分:1)

您必须对unique表中的唯一电子邮件使用users验证,并使用exists验证来检查emails表中是否存在电子邮件。

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

假设您在emailusers表中都有emails字段