-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
isValid() does not throw ValidationException #44
Comments
/**
* Whether the model should throw a ValidationException if it
* fails validation. If not set, it will default to false.
*
* @var boolean
*/
protected $throwValidationExceptions = true; All in the readme |
Got that all in there. It throws exceptions when calling $model->save(), just not when calling $model->isValid('saving'); I was able to work around the issue by adding the following code: if (!$user->isValid('saving')) {
$exception = new ValidationException(get_class($user) . ' model could not be persisted as it failed validation.');
$exception->setModel($user);
$exception->setErrors($user->getErrors());
throw $exception;
} Looking at the source for the validation trait, is appears that the trait method performValidation() is overriding the observer method of the same name. The trait method does not throw an exception, while the observer method does. |
Haha, yeah it is. My reasoning was that asking a model if it I suppose one thing I could do is move the throwing of an exception into a method on the model, say if ( ! $user->isValid('saving')) $user->throwValidationException() Actually, another alternative is (I'm thinking as I type!) is another method, like |
Yes, I agree with the semantics :). Asking if something IS or ISNOT should return true or false. Is |
|
Tagged in |
Is the above description correct in 0.9.0? I run the isValid function on models that don't meet the criteria, and no exception is thrown, instead it returns a boolean, in this case false, which is expected.
What call can I make that does trigger validationexception without saving?
Sorry I'm having so many issues getting things in place, for some reason I keep bumping into edge cases. :)
The text was updated successfully, but these errors were encountered: