一个完整的使用实例:(验证模型数据)

use Phalcon\Mvc\Model;

use Phalcon\Mvc\Model\Validator\Email as EmailValidator;

use Phalcon\Mvc\Model\Validator\Uniqueness as UniquenessValidator;

class Users extends Model

{

//定义验证规则

public function validation()

{

$this->validate(new EmailValidator(array(

'field' => 'email',

'message' => '邮箱无效'

)));

$this->validate(new UniquenessValidator(array(

'field' => 'email',

'message' => '对不起,该邮箱已注册'

)));

$this->validate(new UniquenessValidator(array(

'field' => 'username',

'message' => '对不起,该用户名已被占用'

)));

if($this->validationHasFailed() == true) {

return false;

}

}

}

也可以用于验证非模型数据:

use Phalcon\Validation;

use Phalcon\Validation\Validator\Email;

use Phalcon\Validation\Validator\PresenceOf;

$validation = new Validation();

$validation->add('email', new Email(array(

'message' => 'The e-mail is not valid'

)));

$messages = $validation->validate($_POST);

if (count($messages)) {

foreach ($messages as $message) {

echo $message, '<br>';

}

}

过滤数据:

$validation->setFilters('name', 'trim');

$validation->setFilters('email', 'trim');

验证事件:

public function beforeValidation($data, $entity, $messages)

public function afterValidation($data, $entity, $messages)

(事件函数中若返回了false,验证就会终止)

取消验证:

$validation->add('telephone', new PresenceOf(array(

'message' => 'The telephone is required',

'cancelOnFail' => true

)));

(若验证失败终止后面的所有验证)

最新文章

  1. JDK1.7.0_45源码阅读&lt;java.lang.Boolean&gt;
  2. BZOJ3223: Tyvj 1729 文艺平衡树 [splay]
  3. LeetCode之226. Invert Binary Tree
  4. Ubuntu14.04_64位使用过程
  5. WEBSTORM 2016.3 activation code激活
  6. HTTP协议小结
  7. 探索.git目录
  8. LPTHW 笨方法学习python 16章
  9. 使用Varnish代替Squid做网站缓存加速器的详细解决方案----转载
  10. LintCode-Unique Path II
  11. Java项目打包在CMD或者Linux下运行
  12. mvc Model元数据【学习笔记】
  13. 解决CSS中float:left后需要clear:both清空的繁琐步骤(转)
  14. [Head First Python]4. summary
  15. JQ动画,背景透明度
  16. 详解JS设计模式
  17. cmder使用简介
  18. VC.【转】采用_beginthread/_beginthreadex函数创建多线程
  19. npm降低版本(降级)
  20. 我在JS上解惑之路1

热门文章

  1. Linux系统下用户与组的管理
  2. Day-16: 图形界面
  3. java 数组内的最大组合数
  4. 【转】SWT/JFace的对话框
  5. mongodb 常用的命令
  6. Node.js博客搭建
  7. angular 自定义指令详解 Directive
  8. mysql 实验论证 innodb表级锁与行级锁
  9. Linux学习——shell编程之运算符
  10. JAVA对象头