Я пытаюсь реализовать пользовательское поведение проверки для нескольких моделей в Cake.Я новичок в фреймворке и в php в целом и могу быть склонен к глупым ошибкам.
Проблема, с которой я сталкиваюсь, заключается в том, что первый параметр моей пользовательской функции проверки заполняется модельюэто проверяется вместо массива ('fieldname' => 'input'), который, по-видимому, должен быть в документации.Что у меня есть:
class Policy extends AppModel {
var $actsAs = array('JsonValidation');
var $validate = array(
'field1' => array(
'rule' => 'myValidationRule',
'message' => 'Please enter valid stuff.'
),
'field2' => array(
'rule' => myValidationRule',
'message' => 'Please enter valid my.'
));
....
class MyValidationBehavior extends ModelBehavior {
function myValidationRule($check, $allowEmpty = false){
debug($check); //prints out the Policy model
$input = array_shift($check); //errors since $check isn't an array
debug($input);
if($allowEmpty && trim($input) == "") return true;
if(isValid($input)) return false;
return true;
}
Любые идеи о том, что я делаю неправильно или как я могу получить информацию от пользователя в этом контексте?
Спасибо, Лорен
Рабочий раствор:
<code>
var $validate = array(
'rules' => array(
'rule' => array('myValidationRule', true),
'message' => 'Please enter something valid.'
),
'rule_parms' => array(
'rule' => array('myValidationRule', true),
'message' => 'Please enter something valid.'
));
<code>
function myValidationRule($Model, $check, $allowEmpty){
$input = array_shift($check);
if($allowEmpty && trim($input) == "") return true;
if(valid($input) == null) return false;
return true;
}