致命错误:在特定行上调用未定义的方法

时间:2017-04-27 11:59:28

标签: php codeigniter codeigniter-3 ion-auth

Codeigniter在尝试渲染注册页面时抛出下一个错误。看起来方法Register :: render()没有在第21行定义,但我根本不理解这个问题

Screenshot

Register.php文件

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Register extends MY_Controller
{

    public function index()
    {
        $this->load->library('form_validation');
        $this->form_validation->set_rules('first_name', 'First name','trim|required');
        $this->form_validation->set_rules('last_name', 'Last name','trim|required');
        $this->form_validation->set_rules('username','Username','trim|required|is_unique[users.username]');
        $this->form_validation->set_rules('email','Email','trim|valid_email|required');
        $this->form_validation->set_rules('password','Password','trim|min_length[8]|max_length[20]|required');
        $this->form_validation->set_rules('confirm_password','Confirm password','trim|matches[password]|required');

        if($this->form_validation->run()===FALSE)
        {
            $this->load->helper('form');
            $this->render('register/index_view');
        }
        else
        {
            $first_name = $this->input->post('first_name');
            $last_name = $this->input->post('last_name');
            $username = $this->input->post('username');
            $email = $this->input->post('email');
            $password = $this->input->post('password');

            $additional_data = array(
                'first_name' => $first_name,
                'last_name' => $last_name
            );

            $this->load->library('ion_auth');
            if($this->ion_auth->register($username,$password,$email,$additional_data))
            {
                $_SESSION['auth_message'] = 'The account has been created. You may now login.';
                $this->session->mark_as_flash('auth_message');
                redirect('user/login');
            }
            else
            {
                $_SESSION['auth_message'] = $this->ion_auth->errors();
                $this->session->mark_as_flash('auth_message');
                redirect('register');
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您应该使用:

  $this->load->view('register/index_view');

当我开始使用codeigniter时,我遇到了类似的问题。 Render()被一些库使用,和你一样,我遵循了一个教程,但是没有关于那个库的信息。过了一会儿,我在那篇文章中看到了一些评论,我发现了render()。如果你想使用它,试着找一些实现它的库。