В Codeigniter, как передать третий параметр в обратный вызов (проверка формы)? - PullRequest
6 голосов
/ 05 января 2012

В настоящее время я использую класс проверки формы (на Codeigniter) и задаю правила.

Работает так с двумя параметрами ( codeigniter.com / user_guide / library / form_validation.html ):

$this->form_validation->set_rules('username', 'Username', 'callback_test[abc]');

А как насчет третьего параметра? И четвертый ...? Возможно ли это?

Ответы [ 5 ]

14 голосов
/ 23 мая 2012

Это не официально, но работает

Разделить параметр на ','

$this->form_validation->set_rules('article_big_image','Gambar Besar','callback_check_picture[article_big_image,edit]');

function check_picture($image,$param){
    $param = preg_split('/,/', $param);
    $field = $param[0];
    $action = $param[1];
    echo $field.$action;
}
0 голосов
/ 11 мая 2016

Вы можете перейти к правилу |callback_handle_is_unique_value_combinations[val1,val2]

чем, public function callback_handle_is_unique_value_combinations($str, $field) { $fields = explode(',', $field); $val1 = $fields[0]; $val2 = $fields[1];

и затем вы сделали свои сравнения

0 голосов
/ 31 декабря 2015

    $this->form_validation->set_rules('article_big_image','Gambar','callback_check_picture[article_big_image,edit]');
    function check_picture($image,$param){
        $param = explode(',', $param);
        $field = isset($param[0])?$param[0]:'';
        $action = isset($param[1])?$param[1]:'';
       echo $field.$action;
   }
0 голосов
/ 15 января 2015

Вы можете использовать массив для большего количества параметров для большего количества полей, как я сделал ниже:

 $error = array(

                array(
                'field' => 'check', // the field name will come here
                'label' => 'Check',
                'rules' => 'required|here you can put the callback Function'
                )
          );
0 голосов
/ 05 января 2012

Не без расширенного класса проверки формы системы. Информацию о том, как этого добиться, можно найти в этой статье .

В качестве альтернативы вы можете получить доступ к переменным записи в вашей функции обратного вызова, используя:

$this->input->post('field_name');

, которая может или не может помочь вам.

...