3

如何在控制器中使用 {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。

4

2 回答 2

5

从用户指南中使用它

echo form_error('field_name');

已编辑

好的试试

echo validation_errors();

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

于 2012-10-06T07:35:53.737 回答
1

实际上,开箱即用的 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>";
于 2014-02-24T04:24:58.060 回答