>我使用一个单独的类进行验证,所以它看起来像
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 }}
,那么我该如何解决这样的事情。
这将完成你的把戏
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,它将附加到规则数组中,如果没有,则将使用一个简单的规则数组。我希望这就是你的意思。