0

コハナ3.2

parent_idを確認したいのですが、type_idの2番目の値が必要です。コード:

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);
}

フィールドの2つの値を関数に送信するにはどうすればよいですか?

私のコントローラーでそれを作った後:

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;
            }

「猫じゃなくて犬の名前!」というエラーの見方 私のビューでは?配列エラーにはこの値がありません。

4

1 に答える 1

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

于 2012-07-19T17:10:58.327 に答える