cakephp学习之单字段多规则校验
对任何校验来说,数据校验都是非常重要的; cake 框架已近为我们封装好了所常用的校验规则,好了,体会一下吧,下面来校验一下‘ user ’ 不为空、唯一性、英数字、长度限制、最长位数。示例代码如下所示:
'user' => array( 'notempty' => array( 'rule' => 'notEmpty', 'message' => 'This field cannot be left blank.', 'last' => 'true' ), 'unique' => array( 'rule' => array('isUnique'), 'message' => ' this value has existed.', ), 'alphanumeric' => array( 'rule' => array('alphaNumeric'), 'message' => 'Only alphabets and numbers allowed', 'required' => true ), 'between' => array( ‘rule’ => array('between', 5, 15), 'message' => ‘Between 5 to 15 charachers’ ), 'user-1' => array( 'rule' => array('maxlength',32), 'message' => ' this value cannot beyond 32 characters .' ) )
附:
‘required’ => true, 字段必须出现 在 data 数组中;
‘last’ => true, 首先要显示的错误信息( 默 认 情况下 CakePHP 会 使用 为 它声明的所有校 验规则进 行 校 验 ,并且返回最后一个失 败 的 错误 信 息。但如果某 规则 的 键 last设 置为true 但它又校 验 失 败 的 话 , 该规则 的 错误 信 息会被返回,而其它未被校 验 的 规则则 不会 继续 校 验 下 去。 )
有时 'rule' => array('alphaNumeric'), 不能过滤掉汉字,不知是何原因,这时可以考虑自定义校验规则,可以写为: 'rule' => array('custom', '/^[A-Za-z0-9]+$/'),
还可以校验 email 、 date 等等,在此不再赘述。
参考资料:http://book.cakephp.org/cn/view/1143/Data-Validation