2014-09-05 73 views
2

我在玩Cakephp 3.0,想知道如何去验证未保存到数据库的数据。Cakephp 3.0表单验证

例如我在模型中(它看起来现在称为“表”)知道您将一个validationDefault方法添加到模型中,该模型在数据被保存到数据库时自动调用,即新用户正在添加到数据库中。但是,我将如何去验证来自不保存到数据库的登录表单的数据,然后显示这些错误?

例如在用户登录时,我会想检查是否领域已经进入,不超过一定的规模等

回答

5

从官方文档两者,你可以在你的控制器实例化一个验证和确认您的数据通过它传递$this->request->data()

use Cake\Validation\Validator; 

... 

$validator = new Validator(); 
$validator 
    ->validatePresence('email') 
    ->add('email', 'validFormat', [ 
     'rule' => 'email', 
     'message' => 'E-mail must be valid' 
    ]) 
    ->validatePresence('name') 
    ->notEmpty('name', 'We need your name.') 
    ->validatePresence('comment') 
    ->notEmpty('comment', 'You need to give a comment.'); 

$errors = $validator->errors($this->request->data()); 
if (!empty($errors)) { 
    // Send an email. 
} 

http://book.cakephp.org/3.0/en/core-libraries/validation.html