Вызов функции-члена kayitmodel () для необъекта - PullRequest
0 голосов
/ 29 февраля 2012

Я пытаюсь использовать функцию, но сталкиваюсь с проблемой.Я провожу исследование в сети, но нет решения

У меня есть модель.Вы можете увидеть ниже:

   <?php

class kayitmodel extends CI_Model {

    function User_model() {
        parent::Model();
    }

    function uyeEkle($username, $email, $password, $activationCode) {
        $sha1_password = sha1($password);

        $query = "insert into pasaj_register(username,email,password,activationCode) values(?,?,?,?)";
        $this->db->query($query, array($username, $email, $sha1_password, $activationCode));
    }

    function uyeOnay($registrationCode) {
        $query = "SELECT id FROM pasaj_register where activationCode = '" . $registrationCode . "' and active != 1";
        $result = $this->db->query($query, $registrationCode);

        if ($result->num_rows() == 1) {
            $query = "UPDATE pasaj_register SET active = 1 WHERE activationCode = ?";
            $this->db->query($query, $registrationCode);

            return true;
        } else {
            return false;
        }
    }

     function girisKontrol($username, $password) {
        $sha1_password = sha1($password);
        $query = "SELECT id FROM pasaj_register WHERE username = ? and password = ?";

        $result = $this->db->query($query, array($username, $sha1_password));

        if ($result->num_rows() == 1)
            return $result->row(0)->id;
        else
            return false;
    }



}

В контроллере giris я использую функцию girisKontrol

<?php

class giris extends CI_Controller {

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

    public function index() {
        $this->load->model('kayit/kayitmodel');
        $this->load->view('giris/giris');
    }


    public function main_page() {

        extract($_POST);


        $userID = $this->giris->kayitmodel($username, $password);


        if(!userID)
            echo "yok";
        else 
            echo "var"; 
    }

}

?>

, но при обработке страницы выдает ошибку:

Fatal error: Call to a member function kayitmodel() on a non-object in C:\xampp\htdocs\pasaj\application\controllers\giris.php on line 20

почему?

1 Ответ

2 голосов
/ 29 февраля 2012
 $userID = $this->giris->kayitmodel($username, $password);

Это неправильно. giris ваш контроллер, в настоящее время он $this. kayitmodel это ваша модель. Затем вам нужно вызвать функцию в вашей модели.

 $userID = $this->kayitmodel->girisKontrol($username, $password);

Также в вашей модели:

function User_model() {
    parent::Model();
}

должно быть:

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

РЕДАКТИРОВАТЬ: модели должны начинаться с заглавной буквы, а остальные строчные. Также именем файла должно быть имя класса, но все строчные.
Руководство: http://codeigniter.com/user_guide/general/models.html

Это должно быть в файле с именем kayitmodel.php (обратите внимание на строчную букву 'k').

class Kayitmodel extends CI_Model { // Note the capital 'K'

Ваш звонок должен быть изменен на:

$userID = $this->Kayitmodel->girisKontrol($username, $password); // Note the capital 'K'

EDIT2: ваш контроллер должен начинаться с заглавной буквы тоже.
Руководство: http://codeigniter.com/user_guide/general/controllers.html

class Giris extends CI_Controller { // Note the capital 'G'

EDIT3: вам нужно загрузить модель в конструктор вашего контроллера, чтобы все методы внутри могли использовать его.

class Giris extends CI_Controller {

    public function __construct() {
        parent::__construct();  // Make sure this is the 1st line in the constructor
        $this->load->model('kayit/kayitmodel');
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...