Kohana ORM 的验证是使用rules
function rules()
{
return array(
'username' => array(
array('not_empty'),
array(array($this, 'availability')),
)
);
}
我正在努力使用$_serialize_columns
.
class Model_Admin extends ORM {
protected $_belongs_to = array();
protected $_has_many = array(
'plans' => array(),
'groups' => array(),
'transactions' => array(),
'logins' => array()
);
protected $_serialize_columns = array('data');
/**
* @param array $data
* @param Validation $validation
*
* @return bool
*/
public function data($data, $validation)
{
return
Validation::factory(json_decode($data, TRUE))
// ... rules ...
->check();
}
public function rules()
{
return array(
'data' => array(
array(array($this, 'data'), array(':value',':validation')
)
);
}
}
被编码的数组是:
array(
'name' => '',
'address' => '',
'phone' => '',
'postalcode' => ''
);
该data
方法接收 json 编码的数据,因为 ORM 在进行验证之前运行过滤器,所以我需要将其转换回关联数组,然后创建一个新的验证对象来专门检查该数组的内容。因为我无法合并Validation
来自另一个Validation
实例的规则