phalcon——验证

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

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

)))

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

posted @ 2015-08-01 23:39  疯一样的狼人  阅读(1332)  评论(0编辑  收藏  举报