Archived
1
0
Fork 0

app/models/Data/User.php: in validation() only validate changed fields.

This commit is contained in:
Henrik Hautakoski 2018-08-22 06:08:52 +02:00
parent bd51dd8700
commit 28e2201a6b
No known key found for this signature in database
GPG key ID: 839F3A7EAFAEAFAA

View file

@ -48,19 +48,31 @@ class User extends Base
public function validation()
{
// Validation
$validator = new Validation();
$rules = [
'username' => new CallbackValidator([
'callback' => function () {
return $this->findFirstByUsername($this->getUsername()) === false;
},
'message' => 'The username already exists.'
]),
'email' => new CallbackValidator([
'callback' => function() {
return $this->findFirstByEmail($this->getEmail()) === false;
},
'message' => 'The email address already exists.'
])
];
$validator->add('username', new CallbackValidator([
'callback' => function() { return $this->findFirstByUsername($this->getUsername()) === false; },
'message' => 'The username already exists.'
]));
$validator->add('email', new CallbackValidator([
'callback' => function() { return $this->findFirstByEmail($this->getEmail()) === false; },
'message' => 'The email address already exists.'
]));
$validation = new Validation();
foreach($rules as $field => $validator) {
return $this->validate($validator);
// Only validate changed fields.
if ($this->hasChanged($field)) {
$validation->add($field, $validator);
}
}
return $this->validate($validation);
}
/**