CodeIgniter回调函数未显示

时间:2016-03-21 08:59:13

标签: php codeigniter callback

我发现其他人有同样的问题,但无法找到我的问题的解决方案。如果使用回调函数登录失败,则不会显示我的错误消息。

loginController.php

@user.items.where(is_new: true).destroy_all

users_model.php

public function validate_credentials () {

        $this->load->model('users_model');
        $query = $this->users_model->validate();

        if($query)
       {
        $data = array(
            'username' => $this->input->post('username'),
            'is_logged_in' => true
        );
        $this->session->set_userdata($data);
        redirect('/member/homes'); 
       }
       else
       {
           $this->form_validation->set_rules('username', 'Username', 'trim|required|callback_check_username_exists'); //test
         $data['lofin_failed'] = 'Wrong usename or password'; // I added this line in the meantime to display an error message.

            $this->load->view('header');
            $this->load->view('navbar');
            $this->load->view('loginForm', $data);
            $this->load->view('footer');             
       }   
    }

    public function check_username_exists()
    {
        $this->form_validation->set_message('check_username_exists', 'Wrong username or password!!');
        return false;
    }

2 个答案:

答案 0 :(得分:0)

有表单验证规则:

  

is_unique [table.field]

如果用户名是唯一的,则检查数据库,您不需要回调。

您可以在此处查看https://ellislab.com/codeigniter/user-guide/libraries/form_validation.html

你可以使用session flashdata而不是$ data ['lofin_failed'] 你可以在https://ellislab.com/codeigniter/user-guide/libraries/sessions.html

查看

答案 1 :(得分:0)

我发现了问题。我只是忘了在页面开头添加echo validation_errors(); ....