Kohana ORM の検証は、次を使用して行われます。rules
function rules()
{
return array(
'username' => array(
array('not_empty'),
array(array($this, 'availability')),
)
);
}
を使用して JSON エンコードされた列を検証するのに苦労しています$_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' => ''
);
ORM は検証を行う前にフィルターを実行するため、data
メソッドは json でエンコードされたデータを受け取ります。そのため、それを連想配列に変換してから、新しい検証オブジェクトを作成して、その配列の内容を具体的に確認する必要があります。Validation
別のValidation
インスタンスのルールをマージできないため