ORM/Extra Validate в двух полях

Кохана 3.2

Я хочу проверить свой parent_id, но мне нужно второе значение type_id. Код:

public function rules()
{ 
return array(
'type_id' => array(
array('not_empty'),
array('digit'),
),

'parent_id' => array(
array('digit'),
array(array($this,'check_category'),array(':value', ':field','type_id'))
),


);

}

public function check_category($parent_id,$field,$type_id)
{
die($type_id);
}

Как отправить два значения моего поля в мою функцию??

После того, как я сделаю это в своем контроллере:

if(isset($_POST['submit']))
        {
            $data = Arr::extract($_POST, array('type_id', 'parent_id', 'name', 'comment'));
            $category = ORM::factory('kindle_category');
            $category->values($data);

            try {
                $extra_rules = Validation::factory($_POST)
                ->rule('parent_id','Kindle::check_category',array($data['type_id'],$data['parent_id'],'parent_id',':validation'));
                $category->save($extra_rules);

                $this->request->redirect('kindle/category');
            }
            catch (ORM_Validation_Exception $e) {

                $errors = $e->errors('validation');

            }
        }

if($parent->type_id!=$type_id) 
            {
                $validation->error($field, 'Dog name, not cat!');
                return false;
            }

Как увидеть мою ошибку "Имя собаки, а не кошки!" в моем представлении ?массив ошибок не имеет этого значения.


person Exorcist    schedule 29.06.2012    source источник


Ответы (1)


public function rules()
{
    return array(
        'type_id' => array(
            array('not_empty'),
            array('digit'),
        ),

        'parent_id' => array(
            array('digit'),
            array(array($this,'check_category'),array(':validation'))
    ),
);

}

public function check_category($validation)
{
    $type_id = $validation['type_id'];
    ...
}

http://kohanaframework.org/3.2/guide/orm/examples/validation

person Thorsten    schedule 19.07.2012