cakephp, validate error
I updated some data by inserting it into the fields and clicking on the update button, but validates()
is always returning false.
All the fields are filled correctly, and it does not display any error messages - validates()
just returns false.
Why?
$this->Post->set($this-&开发者_开发百科gt;data);
if ($this->Post->validates())
echo 'ok';
else
echo 'error';
Check this post for some tips. The relevant ones are given here.
Save() does not work! Sometimes it happens that
save()
fails without any obvious reason. Your data array looks fine and you’ve built the form correctly, etc., etc., but no query was executed. It is very possible that save had failed due to validation errors. Maybe you are updating some model and, while the current fields in the form pass the validation, there is a chance that some “other ones” are causing the validation rules to fail. An easy (and helpful) way to see what’s going on with validation is to dopr($this->validationErrors);
in your view. By employing this method you’ll see exactly what’s happening with your model’s validation. The other option is to passfalse
as a second parameter tosave();
in order to disable the validation. However, the latter method does not give much of a hint and should not be used to fix a failing problem, but rather to purposely avoid validation.Save() still does not work! Do you have
beforeSave();
in your model or app model? Always double-check for this method, and even more importantly, ensure that it returnstrue
.Validating on create or update CakePHP has an
'on'
key to be used in your$validate
array. It allows you to specify whether the rule should be enforced during a new record creation or during an update of an existing record. For example, if you only want to check for a unique email address when you are creating a new User account, you would add'on' => 'create'
to your$validate
array. Therefore, this rule will be ignored when you are updating/editing some user.
精彩评论