Laravel验证(独特规则)

时间:2014-12-31 13:55:56

标签: validation laravel

我使用单独的类进行验证,因此它看起来像

class UserValidation {

    protected static $id;

    protected static $rules = [
        'email'    => 'required|email|unique:users,email,{{ self::$id }}',
        'password' => 'required|alpha_dash|min:4',
    ];

    public static function validate($input, $id)
    {
        self::$id = $id;
        return Validator::make($input, self::$rules);
    }
}

所以想象用户想要只更新他的密码,所以他更新了它>提交,但他收到错误this email is already taken,因为laravel无法阅读{{ self::$id }},所以我该如何解决这样的问题。

1 个答案:

答案 0 :(得分:1)

这会做你的伎俩

class UserValidation {

    protected static $rules = [
        'email'    => 'required|email|unique:users,email',
        'password' => 'required|alpha_dash|min:4',
    ];

    public static function validate($input, $id = false)
    {
        $rules = self::$rules;

        if($id)
        {
            $rules['email'] .=','.$id;
        }
        return Validator::make($input, $rules);
    }
}

如果您传递的是id,它将附加到rules数组中,否则将使用简单的规则数组。我希望这就是你的意思。

相关问题