cakephp验证响应将数据返回给控制器

时间:2010-09-28 11:57:18

标签: validation cakephp model

您好我在模型中进行了自定义验证。如何从控制器中访问结果($ visitor)?

模型:

<?php  
class Visitors extends AppModel 
{ 
    var $name = 'Visitors'; 

    var $validate = array(
        'xxx' => array(
            'rule' => array('checkxxx'),
            'message' => 'yyy.'
        )
    );

    function checkIxxx($check){
        $visitor = $this->find('first', array('conditions' => $check));
        return $visitor;
    }

} 

&GT;

在我的控制器中我想要这个:

function start() {  
        $this->Visitors->set($this->data);      
        if($this->Visitors->validates()) 
        {  
          if($this->Visitors->xxx->type == 'value') //this is a value from the $visitor array in the model**
          {
               //do something
          }

        }

这可能吗?

2 个答案:

答案 0 :(得分:1)

更新为相关答案,道歉。

//Model
var myField = 'invalid';

function myValidation($var){
  if($var === true){
    // Passed your validation test
    $this->myField = 'valid';
  }else{
    $this->myField = 'invalid';
  }
}

// Controller
$this->Model->set($this->data);
$this->Model->validates($this->data);

if($this->Model->myfield == 'valid'){
  // Field has passed validation
}

您需要使用

$this->Model->invalidFields()

答案 1 :(得分:0)

PS:你不遵循蛋糕惯例

该模型应为“访客”(单​​数)