【问题标题】:How to show validation message in controller Codeigniter如何在控制器 Codeigniter 中显示验证消息
【发布时间】:2012-10-06 07:31:17
【问题描述】:

如何在控制器中使用 {ci_form_validation field='title' error='true'} ?

我有这个代码

$this->load->library('form_validation');
$this->form_validation->set_rules('title', $this->lang->line('title'), 'trim|required|min_length[3]|xss_clean');   
$this->form_validation->set_rules('fahad', $this->lang->line('blog'), 'trim|required|min_length[20]|xss_clean'); 
$this->form_validation->set_rules('writer', $this->lang->line('writer'), 'trim|required|alpha_dash|min_length[3]|xss_clean');

我想在控制器中打印错误消息,因为我使用的是 jquery。

【问题讨论】:

    标签: php jquery codeigniter


    【解决方案1】:

    从用户指南中使用它

    echo form_error('field_name');
    

    已编辑

    好的试试

    echo validation_errors();
    

    这会给你每一个错误,之后你可以得到你想要的

    【讨论】:

    • 我试过了,但没有显示任何东西 = empty $this->load->library('form_validation'); $this->form_validation->set_rules('full_name', $this->lang->line('password'), 'trim|required|min_length[3]|xss_clean'); $this->form_validation->set_rules('fahad', $this->lang->line('blog'), 'trim|required|min_length[20]|xss_clean'); $this->form_validation->set_rules('writer', $this->lang->line('writer'), 'trim|required|alpha_dash|min_length[3]|xss_clean'); echo form_error('full_name');
    【解决方案2】:

    实际上,开箱即用的 CodeIgniter 无法做到这一点。但是,扩展原始表单验证库非常容易。

    • 在您的应用程序/库文件夹中创建一个名为“MY_Form_validation.php”的文件

    • 将以下代码添加到 application/libraries/MY_Form_validation.php

      class MY_Form_validation extends CI_Form_validation {
      
          public function __construct() {
      
              parent::__construct();
      
          }
      
          /**
           * Return all validation errors
           *
           * @access  public
           * @return  array
           */
          function get_all_errors() {
      
              $error_array = array();
      
              if (count($this->_error_array) > 0) {
      
                  foreach ($this->_error_array as $k => $v) {
      
                      $error_array[$k] = $v;
      
                  }
      
                  return $error_array;
      
              }
      
              return false;
      
          }
      
      
      }
      

    然后从您的控制器:

        echo "<pre>";
    
        print_r($this->form_validation->get_all_errors());
    
        echo "</pre>";
    

    【讨论】: