跳过Kohana 3.3中的ORM验证

时间:2012-12-14 19:14:52

标签: orm kohana

如何在不根除我的ORM模型规则功能的情况下跳过特定orm保存的验证?

我正在使用kohana 3.3

2 个答案:

答案 0 :(得分:3)

查看rules()方法。您可以轻松添加自定义检查,例如:

// required by default
protected $_validation_required = TRUE;

public function rules()
{
    if ($this->validation_required())
    {
         // return all model rules
         return array(
              // default rules here
         );
         // or 
         // if extending model with existing rules
         return parent::rules(); 
    }
    else
    {
         // skip validation 
         return array();
    }
}

public function validation_required($required = TRUE)
{
     if ($required === NULL)
     {
           // work as getter
           return $this->_validation_required;
     }

     // set value
     $this->_validation_required = (bool)$required;
     return $this;
}

当然,您可以使用针对不同事件的自定义规则(插入/更新等)扩展此代码。

<强> PS 即可。您也可以覆盖check()方法,并在TRUE时返回$this->validation_required() == TRUE。但我宁愿发送空规则(因为rules()是专为自定义而设计的,而check()是一种系统方法)。

答案 1 :(得分:0)

在接受的答案中,使用$ this-&gt; validation_required()函数就像àgetter似乎错了($ required参数的默认值是!= NULL)

public function validation_required($required = TRUE)
{
    if ($required === NULL)
    {
       // work as getter
       return $this->_validation_required;
    }
...