【问题标题】:In Codeigniter, how to pass a third parameter to a callback (form validation)?在 Codeigniter 中,如何将第三个参数传递给回调(表单验证)?
【发布时间】:2012-02-03 04:29:30
【问题描述】:

我目前正在使用表单验证类(在 Codeigniter 上)并设置规则。

使用两个参数 (codeigniter.com/user_guide/libraries/form_validation.html):

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

但是第三个参数呢?还有第四个……?有可能吗?

【问题讨论】:

    标签: codeigniter callback validation codeigniter-2 validationrules


    【解决方案1】:

    这不是官方的,但有效

    用','分割参数

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

    【讨论】:

      【解决方案2】:

      不是没有扩展系统表单验证类。有关如何实现这一点的信息,请查看article

      或者,您可以使用以下方法访问回调函数中的 post 变量:

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

      这可能会或可能不会帮助您。

      【讨论】:

      • 谢谢它应该可以工作(我稍后会尝试)但有点失望地得知没有像callback_test[abc,def,ghi]这样的简单方法。
      【解决方案3】:

      您可以使用 Array 获取更多字段的更多参数,如下所示:

       $error = array(
      
                      array(
                      'field' => 'check', // the field name will come here
                      'label' => 'Check',
                      'rules' => 'required|here you can put the callback Function'
                      )
                );
      

      【讨论】:

        【解决方案4】:
        
            $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;
           }
        

        【讨论】:

        • 您可以编辑其他答案而不是发布单独的答案,谢谢。
        【解决方案5】:

        你可以传递给规则 |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];

        然后你做了你的cponarisons

        【讨论】:

          猜你喜欢
          • 2014-07-18
          • 2011-06-16
          • 1970-01-01
          • 2013-01-23
          • 2021-04-13
          • 1970-01-01
          • 2021-10-19
          • 2015-11-12
          • 2015-11-13
          相关资源
          最近更新 更多