我在cakephp1.3工作。我必须在model.i中使用cakephp验证来验证我的表单。添加了一个正则表达式来限制特殊字符的输入。
我的代码如下:
var $validate = array(
'name' => array(
'unique'=>array(
'rule' => 'isUnique',
'message' => 'Already taken',
),
'pattern'=>array(
'rule' => '/^[a-z]$/i',
'message' => 'Only letters allowed',
),
'empty'=>array(
'rule' => 'notEmpty',
'message' => 'This field cannot be left blank',
))
);
规则'unique'不起作用。在我在脚本中添加“模式”规则之前它工作正常。问题是什么?我试着按照上面提到的规则顺序,我认为可能存在一些定位问题,但没有发生任何事情。
请帮助我..
答案 0 :(得分:4)
用+代替$:
var $validate = array(
'name' => array(
'notempty' => array(
'rule' => array('notempty'),
'message' => 'This field cannot be left blank',
),
'unique'=>array(
'rule' => 'isUnique',
'message' => 'Already taken'
),
'pattern'=>array(
'rule' => '[a-zA-Z]+',
'message' => 'Only letters allowed',
),
),
);
答案 1 :(得分:1)
您需要精确确定您的char的时长。在«]»之后添加此数据:
http://www.php.net/manual/en/regexp.reference.meta.php
示例:
'rule' => '/^[a-z]+$/i',
'rule' => '/^[a-z]{3-255}$/i',