Неустранимая ошибка: вызов функции-члена where () для необъекта в - PullRequest
1 голос
/ 11 мая 2011

Я отлаживал этот код, но все еще не увенчался успехом. Кто-нибудь может мне помочь, пожалуйста?

class Membership_model extends CI_Model {

function __construct()
{
    parent::__construct();
}

function validate()
{
    $this->db->where('username', $this->input->post('username'));
    $this->db->where('password', md5($this->input->post('password')));
    $query = $this->db->get('membership');

    if($query->num_rows == 1)
    {
        return true;
    }
}

function create_member()
{

    $new_member_insert_data = array(
        'first_name' => $this->input->post('first_name'),
        'last_name' => $this->input->post('last_name'),
        'email_address' => $this->input->post('email_address'),         
        'username' => $this->input->post('username'),
        'password' => md5($this->input->post('password'))                       
    );

    $insert = $this->db->insert('membership', $new_member_insert_data);
    return $insert;
}
}

Я продолжал получать фатальную ошибку на линии

$ this-> db-> где ( 'имя пользователя', $ this-> вход-> запись ( 'имя пользователя'));

это контроллер / login.php

class Login extends CI_Controller {

function __construct()
{
    parent::__construct();
}

function index()
{
    $this->load->helper('url');
    $data['main_content'] = 'login_form';
    $this->load->view('includes/template', $data);      
}

function validate_credentials()
{       
    $this->load->model('membership_model');
    $query = $this->membership_model->validate();

    if($query) // if the user's credentials validated...
    {
        $data = array(
            'username' => $this->input->post('username'),
            'is_logged_in' => true
        );
        $this->session->set_userdata($data);
        redirect('site/members_area');
    }
    else // incorrect username or password
    {
        $this->index();
    }
}   

function signup()
{
    $data['main_content'] = 'signup_form';
    $this->load->view('includes/template', $data);
}

function create_member()
{
    $this->load->library('form_validation');

    // field name, error message, validation rules
    $this->form_validation->set_rules('first_name', 'Name', 'trim|required');
    $this->form_validation->set_rules('last_name', 'Last Name', 'trim|required');
    $this->form_validation->set_rules('email_address', 'Email Address', 'trim|required|valid_email');
    $this->form_validation->set_rules('username', 'Username', 'trim|required|min_length[4]');
    $this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[4]|max_length[32]');
    $this->form_validation->set_rules('password2', 'Password Confirmation', 'trim|required|matches[password]');


    if($this->form_validation->run() == FALSE)
    {
        $this->load->view('signup_form');
    }

    else
    {           
        $this->load->model('membership_model');

        if($query = $this->membership_model->create_member())
        {
            $data['main_content'] = 'signup_successful';
            $this->load->view('includes/template', $data);
        }
        else
        {
            $this->load->view('signup_form');           
        }
    }

}

function logout()
{
    $this->session->sess_destroy();
    $this->index();
}

Ответы [ 3 ]

0 голосов
/ 11 мая 2011

База данных, вероятно, не инициализируется должным образом до вызова validate.

0 голосов
/ 11 мая 2011

Похоже, вы не подключены к вашей БД.Убедитесь, что вы подключаетесь к своей базе данных.

Вы можете автоматически подключаться при каждом запуске скрипта или вручную подключаться к БД.Посмотрите руководства по настройке параметров подключения: http://codeigniter.com/user_guide/database/connecting.html

0 голосов
/ 11 мая 2011

Может ли быть так, что load->model( 'membership_model' ) должен получить имя класса, и что это имя с учетом регистра ?Вероятно, вам следует проверить возвращаемое значение функций API ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...