Consider the following scenario where we have a database table:users and that we need carry the validations for the following forms
ii) Change password
iii) Add/Edit user records
iv) Forgot password
You can either write separate controllers and have each controller call a model based on table: users to validate each input field or use the same user model to carry out different validations which sounds logical.
It is easy to carry out different validations in a cakephp model by using the Multi-validatable Behavior by having different validation sets for different testing conditions.
Key things to note here …
i) Download the code for Multivalidatable Behavior and have it placed under /models/behaviors/ folder
ii) In the model where you want to have multi validation, you need to include multivalidatable behavior like
var $actsAs = array(“Multivalidatable”);
iii) Add validation rulesets array like
var $validationSets = array(‘login’ => array(‘name’=>array(‘rule’=>’alphanumeric’)),
‘changepassword’ => array(‘password’=>array(‘rule’=>’notEmpty’))
iv) In the controller where you want to apply the validation rule set, you need to add the respective validation like
For more info visit CakePHP Bakery