如何在CI中为自定义验证设置自定义消息

时间:2018-04-16 11:17:31

标签: php codeigniter validation

我的html中有三个字段,一个是mobile_min,mobile_max和第三个字段 我采取的是测试,这是一个输入字段。所以我必须做的事情 使用自定义消息创建自定义验证,其中我的要求是mobile_min值,在提交from后,不应大于mobile_max值。所以我的代码工作正常,但我收到此消息"最小值不是需要大于最大值字段。" 但我希望此消息"最小值不大于最大值字段。" .I还阅读了CI的自定义消息规则,但它无法正常工作。

Html字段代码

<html>
<input type=text name=mobile_min>
<input type=text name=mobile_max>
<input type=hidden name=test>
</html>

控制器验证码

<?php


        if($this->input->post('mobile_min')>$this->input->post('mobile_max'))
     {

      $this->form_validation->set_rules('test', 'Min value is not greater than max value','trim|required');
      } 
?>

请先帮助我。

1 个答案:

答案 0 :(得分:1)

使用codeigniter表单验证回拨https://www.codeigniter.com/user_guide/libraries/form_validation.html#callbacks-your-own-validation-methods

控制器功能:

<?php 

class Controllername extends CI_Controller {

public function index() {

   $this->load->library('form_validation');
   $this->load->helper('form');

   $this->form_validation->set_rules('mobile_min', 'mobile min', 'required');
   $this->form_validation->set_rules('mobile_max', 'mobile max', 'required|callback_somename');

   if ($this->form_validation->run() == TRUE) {
      /// Success data.
   }


   $this->load->view('some_view');

}

public function somename() {
   if($this->input->post('mobile_min') > $this->input->post('mobile_max')) {

      $this->form_validation->set_message('somename', 'Min value is not greater than max value');

      return FALSE;


   } 
}

}

查看

<?php echo form_open('controllername'); ?>

   <?php echo validation_errors();?>

   <?php echo form_input('mobile_min', '', array('id' => 'mobile_min'));?>
   <?php echo form_input('mobile_max', '', array('id' => 'mobile_max'));?>

   <button type="submit" class="btn btn-primary">Submit</button>

<?php echo form_close();?>