Codeigniter显示set_message不起作用

时间:2017-04-18 09:44:28

标签: php codeigniter validation

我在form_validation上显示来自set_message的错误消息时遇到问题。请参阅下面代码的某些部分。

以下是我的观点:

 <div class="uk-margin">
     <?php if (form_error('name')){ ?>
          <span class="reg_error"><?php echo form_error('name'); ?></span>
     <?php } ?>

     <div class="uk-form-controls">
          <input class="uk-input" id="name" name="name" type="text" placeholder="Full Name">
     </div>
 </div>

这是我的控制器:

    $this->form_validation->set_rules('name', 'Full Name', 'trim|callback_alpha_space');
    $this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');
    $this->form_validation->set_rules('password', 'Password', 'trim|required');

    if ($this->form_validation->run() == FALSE){
        $this->load->view('register');
    }else{
         ....
    }

我在控制器下也有一个功能:

 function alpha_space($str){
    if (!$str){
        $this->form_validation->set_message('alpha_space', 'The {field} field is required.');
        return FALSE;
    }else if (!preg_match("/^([-a-z_ ])+$/i",$str)){
        $this->form_validation->set_message('alpha_space', 'The {field} field can not contain number or special characters.');
        return FALSE;
    }else{
        return TRUE;
    }
}

发生的事情是,规则正在运行,但某些消息未显示。感谢您对此的帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

在alpha_space函数中,检查preg_match函数。将“/”字符添加到REGEX的末尾,如下所示:'/^([-a-z_ ])+$/i/'