2014-01-03 3 views
2

Я недавно подхватил фреймворк Codeigniter, но, похоже, у меня проблема.Codeigniter - Autoload Model Always Failing

Всякий раз, когда я использую модель автозагрузчика это Гав мне ту же ошибку: - «Название модели вы загружаете это имя ресурса, который уже используется:»

В случае, если вам нужен мой код решать проблему. В моем коде я использую JQuery/Ajax. Он делает вызов контроллеру «Encounter».

Разумная вещь, чтобы проверить, если я вызываю автоматически загруженную модель в любом месте, но я не настолько далеко, насколько я проверял.

Я немного изменил код, чтобы оставить неважные детали.

class Encounter extends CI_Controller { 

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

    /* * 
    * Summary: Load descriptive, mutative (statistical) data 
    * @params: N/A 
    * #return: N/A 
    */ 
    public function startEncounter() 
    { 
     $encounter_id = $_POST['encounter_id']; 

     switch ($encounter_id) 
     { 
      case 1: 
       $this->load->model('target_model', 'target'); 
       break; 
     } 

     $this->target->Start(); 
    } 
} 

Вот target_model:

class Target_model extends CI_Model { 

    // Has the player met the target before 
    public $F_hasMet = false; 

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

    public function Start() 
    { 
     $this->SayHello(); 
     $this->encounter_model->CallDialog(); 
    } 

    /* * 
    * Summary: Say hello 
    * @params: N/A 
    * #return: N/A 
    */ 
    public function SayHello() 
    { 
     $this->encounter_model->SetDialog("Hello"); 
     $this->F_hasMet = true; 
    } 

} 

Мой автозагрузку:

$autoload['model'] = array('encounter_model'); 

Класс Я пытаюсь автозагрузку:

class Encounter_model extends CI_Model { 

/* * 
* Summary: Interactive data 
*/ 
public $dialog = ''; 

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

    if (! $this->input->is_ajax_request()) { 
     $this->output->set_status_header('401'); 
    } 
} 

/* * 
* Summary: Add or replace dialog 
* @params: Message, addition 
* #return: N/A 
*/ 
public function SetDialog($message, $addition = true) 
{ 
    if ($addition) { 
     $this->dialog .= $message; 
    } else { 
     $this->dialog = $message; 
    } 
} 

/* * 
* Summary: Displays the current dialog to the screen 
* @params: Message, addition 
* #return: N/A 
*/ 
public function CallDialog() 
{  
    $this->output 
     ->set_content_type('application/json') 
     ->set_header("HTTP/1.1 200 OK") 
     ->set_output(json_encode($this->dialog)); 
} 

} 

ответ

0

Казалось, что вы пытаетесь перезагрузить эту модель где-нибудь в коде. Попробуйте выполнить поиск и устранить возможное дублирование.

для дальнейшей помощи.

The model name you are loading is the name of a resource that is already being used: base_model

+0

Спасибо за ваше время, но тиа не должно быть. Даже если я создаю совершенно новую модель, она выдает ту же ошибку. – Nick

+0

Я не понимаю, как это не отвечает на вопрос. –

+0

Я отмечу это как ответ, потому что ссылка предоставила меня в правильном направлении. – Nick

0

Оказывается, я имел следующий код:

class Index extends CI_Controller { 

    public function index() 
    { 
     parent::__construct(); 
     $this->load->view('game'); 
    } 
} 

Но я должен поставить конструкцию внутри конструктора ..

class Index extends CI_Controller { 

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

    public function index() 
    { 
     $this->load->view('game'); 
    } 
}