Вызов неопределенного метода CI_Controller :: Controller () - PullRequest
6 голосов
/ 16 февраля 2012

У меня есть этот контроллер:

    class Start extends CI_Controller{
   var    $base;
   var    $css;

   function Start()
   {
       parent::Controller(); //error here.
       $this->base = $this->config->item('base_url'); //error here
       $this->css = $this->config->item('css');   

   }

  function hello($name)
  {
    $data['css'] = $this->css;
    $data['base'] = $this->base;
    $data['mytitle'] = 'Welcome to this site';
    $data['mytext'] = "Hello, $name, now we're getting dynamic!";
    $this->load->view('testView', $data);
   }
}

он говорит мне в этой строке:

parent :: Controller ();// ошибка здесь.

 Call to undefined method CI_Controller::Controller() 

Если я удаляю эту строку .. Я получаю ошибку для следующей строки, которая говорит ..

Call to a member function item() on a non-object

Как предотвратить возникновение таких ошибок

Ответы [ 2 ]

25 голосов
/ 16 февраля 2012

Если вы используете CI 2.x, тогда ваш конструктор класса должен выглядеть так:

   public function __construct()
   {
        parent::__construct();
        // Your own constructor code
   }

подробнее в руководстве пользователя

3 голосов
/ 16 февраля 2012

В CodeIgniter 2 конструктор имеет имя __constructor, а не имя класса.Поэтому вам нужно позвонить parent::__construct() вместо parent::Controller()

Вот статья, которую вы можете прочитать, которая показывает одно существенное различие между CodeIgniter 1.x и CodeIgniter 2.x

http://ulyssesonline.com/2011/03/01/differences-between-codeigniter-1-7-2-and-2-0-0/

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