有没有办法更改Codeigniter中validation_errors()的输出?

有没有办法更改Codeigniter中validation_errors()的输出?,codeigniter,validation,authentication,customization,Codeigniter,Validation,Authentication,Customization,我正在为Codeigniter中的用户开发登录功能 这是我的用户控制器的一部分: public function login() { $name = $this->input->post('username'); $pass = $this->input->post('pass'); $this->form_validation->set_rules('username', 'Användarnamn', 'required');

我正在为Codeigniter中的用户开发登录功能

这是我的用户控制器的一部分:

public function login() {
    $name = $this->input->post('username');
    $pass = $this->input->post('pass');

    $this->form_validation->set_rules('username', 'Användarnamn', 'required');
    $this->form_validation->set_rules('pass', 'Lösenord', 'required');

    //Username or password not given
    if ($this->form_validation->run() == false) {
            $succesful = false;                        
    }
    else {
            //Form itself validates (Username and password is given)
            //Check if username and password matches against some user in the database
            $um = new Usermodel();
            $um->setUsername($name);
            $um->setPassword($pass);

            //True if account exists or false if it does not
            $succesful = $um->accountExists(); 
    }

    $data = array();
    $succesful = false; //TEMP
    if ($succesful === false) {
            $data['error'] = 'groovy';
            $this->form_validation->set_message('username', 'groovy' );                        
    }

    //Show template
    $data['loginform'] = $this->loginform();
    $data['registerform'] = $this->registerform();
    $this->load->view('home', $data);
}
$succesful = false; //TEMP
if ($succesful === false) {
        $this->form_validation->add_error('username', 'Username is groovy!');                        
}
“我的视图”(主页)中的代码段如下所示:

<?php 
echo validation_errors(); //Show errors if they occur on submit
if (isset($error)) {
    echo $error;
}
if (isset($loginform)) {
    echo $loginform;
}
if (isset($registerform)) {
    echo $registerform;   
}                
?>

在我看来(其中
validation\u errors()
应该返回groovy)

如果我理解正确,这只是在输入用户名不正确时(根据规则)指定值

$this->form_validation->set_message('username', 'groovy' ); 

扩展Form Validation类并添加一个自定义函数,将消息添加到错误数组中(其中
Validation\u errors()
获取其消息)

库/MY_Form_validation.php

class MY_Form_validation extends CI_Form_validation
{
    public function add_error($field, $message)
    {
        if ( ! isset($this->_error_array[$field]))
        {
            $this->_error_array[$field] = $message;
        }

        return;
    }
}
控制器:

public function login() {
    $name = $this->input->post('username');
    $pass = $this->input->post('pass');

    $this->form_validation->set_rules('username', 'Användarnamn', 'required');
    $this->form_validation->set_rules('pass', 'Lösenord', 'required');

    //Username or password not given
    if ($this->form_validation->run() == false) {
            $succesful = false;                        
    }
    else {
            //Form itself validates (Username and password is given)
            //Check if username and password matches against some user in the database
            $um = new Usermodel();
            $um->setUsername($name);
            $um->setPassword($pass);

            //True if account exists or false if it does not
            $succesful = $um->accountExists(); 
    }

    $data = array();
    $succesful = false; //TEMP
    if ($succesful === false) {
            $data['error'] = 'groovy';
            $this->form_validation->set_message('username', 'groovy' );                        
    }

    //Show template
    $data['loginform'] = $this->loginform();
    $data['registerform'] = $this->registerform();
    $this->load->view('home', $data);
}
$succesful = false; //TEMP
if ($succesful === false) {
        $this->form_validation->add_error('username', 'Username is groovy!');                        
}

这有用吗?不,不是真的。我只是想知道这是否可能。我认为这不是因为实际表单的验证是正确的(用户名和密码已提交)。当这些与我的数据库不匹配时,我想回显一条消息。我们有一个codeigniter站点,其中有一个名为my_Form_validation的自定义库,其中有带有验证检查的自定义函数。我想这个问题可能会有帮助。在这个博客的答案中有一个链接,包含更多信息:非常感谢!我还没有测试代码,但我完全理解你的意思,这就可以了!谢谢