我正在尝试为我的模型创建验证器:
但是从http://book.cakephp.org/获取示例:
var $validate = array(
'country' => array(
'rule' => 'notEmpty'
)
);
给出以下错误:preg_match()[function.preg-match]:分隔符不能是字母数字或反斜杠[CORE / cake / libs / model / app_model.php,第166行]
通过Google搜索此错误,我找到了一个推荐使用的邮件列表条目:(http://cakephp.1045679.n5.nabble.com/validation-notEmpty-td1320629.html)
'country' => array(
'rule' => VALID_NOT_EMPTY,
'message' => 'This field cannot be left blank.'
)
哪个不起作用。所以我试过了:
'country' => array(
'rule' => 'VALID_NOT_EMPTY',
'message' => 'This field cannot be left blank.'
)
将该字段标记为必填字段,但并未阻止我将其留空。
我的问题是:如何正确地做到这一点?我正在使用CakePHP 1.3.6
答案 0 :(得分:1)
很可能你需要放required
键;像这样的东西:
'country' => array(
'rule' => 'notEmpty',
required => true,
'message' => 'This field cannot be left blank.'
)
希望这有帮助。
答案 1 :(得分:0)
为什么不使用命令行烘焙模型(cmd:cake bake)?如果烘焙模型,可以在那里指定验证规则。 它快速而简单......您可以看到验证的工作原理。
它给了我很多帮助......
这是一个示例代码。
'username' => array(
'notempty' => array(
'rule' => array('notempty'),
'message' => 'Username required',
'allowEmpty' => false,
'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
您必须使用数组进行规则定义...
答案 2 :(得分:0)
在您的视图文件中添加'class'='required' 例如:
<?php echo $this->Form->input('new_email',array('class'=>'email required yellow', 'div'=>false, 'label'=>false));?>