如何在不根除我的ORM模型规则功能的情况下跳过特定orm保存的验证?
我正在使用kohana 3.3
答案 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;
}
...