首页 > 解决方案 > Laravel 中每种类型用户的唯一电子邮件

问题描述

我想用相同的电子邮件注册许多用户,但类型不同

例如 1@gmail.com 类型 1 2@gmail.com 类型 2

电子邮件将是唯一的,类型是条件。如果类型不是输入,我该如何编写规则

这是我的代码验证器,但它失败了,因为类型不是输入

    public function rules()
    {
        return [
            'name' => 'required|min:3',
            'password' => 'required',
            'phone' => 'required|unique:users|numeric',
            'email' => [
                'required',
                'email',
                Rule::unique('users')
                    ->where('type', $this->type)
            ]
        ];
    }

标签: mysqllaravellaravel-4

解决方案


        $validate = [
            'name' => 'required|min:3',
            'password' => 'required',
            'phone' => 'required|unique:users|numeric',
            'plan_name' => [
                'required',
                'email',
                Rule::unique('users')->where(function ($query) use ($request) {
                  return $query->where('type', $request->type);  
                })                    
            ]
        ];

        $this->validate($request, $validate);

我认为这会有所帮助


推荐阅读