Reputation: 17928
I have the $validate variable in my model which contains:
var $validate=array(
"username" => array( "usernameValid" => array( "rule" => "__alphaNumericDashUnderscore", "message" => "The username you entered is not valid!" ) ) );
The question is: how do I return an error message from the __alphaNumericDashUnderscore()
validation method and throw it in the message
key in the rules array?
For example, this method, __alphaNumericDashUnderscore()
, returns true or false, depending on the user input contains forbidden characters. But what if in this method, I would like to return which specific forbidden characters the user has typed and display them together with the messages
? Something like "The username you entered is not valid! You have used the following forbidden characters: $chars"
.
Do you have any idea of how to achieve this? Thank you in advance.
Upvotes: 2
Views: 816
Reputation: 710
By default, CakePHP validation method only return True or False. But it is still PHP. You can do anything. Here is my hack :
<?php
class User extends Model {
var $name = 'User';
var $invalidChars = "";
var $validate=array("username" => array( "usernameValid" => array(
"rule" => "__alphaNumericDashUnderscore",
"message" => "The username you entered is not valid! You have used the following forbidden characters: $this->invalidChars"
)));
function alphaNumericDashUnderscore($check) {
// Process the value
// Assign invalid char, $this->invalidChars = $chars
// Return true or false
}
}
?>
Upvotes: 1