2013-10-04 2 views
1

Я довольно новичок в Codeigniter и пытаюсь вызвать функцию из своей модели, но я не могу заставить ее работать. Может ли кто-нибудь увидеть, что я делаю неправильно здесь?CodeIgniter не может вызывать функцию из модели в контроллере

Controller (farm.php):

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

    class Farm extends CI_Controller { 

     function __construct() 
     { 
      parent::__construct(); 
      $this->load->model('harvest_first'); 
     } 

     function harvest() 
     { 

      echo $this->harvest_first->harvest(); 
     } 
    } 

Модель (harvest_first.php):

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

    class Harvest_first extends CI_Model 
    { 

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

     public function harvest(){ 
      return "THE FUNCTION"; 
     } 
    } 
?> 

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

Спасибо, Simon

+0

Какая ошибка вы получаете? По внешнему виду ошибок нет. –

+0

как вы называете свою функцию? вы пытаетесь использовать url как http: // your_host/farm/harvest? – palerdot

+0

Это не ошибка, ее просто не работает должным образом. Я называю это с сайта website.com/farm/harvest, страница загружается отлично без ошибок, но функция просто не работает. если я добавлю ручное эхо выше и ниже вызова функции в моем контроллере, это показывает, но второе не делает. –

ответ

2

Попробуйте

class Harvest_first extends CI_Model 

изменения в:

class Harvest_first_model extends CI_Model 

и в контроллер вызова, как это:

$this->load->model('harvest_first_model'); 

и

$this->harvest_first_model->harvest(); 
+0

Это сделало это, спасибо, что вы никогда не понимали, что вам нужно включить модель в имя. –

+2

Откуда у вас это? Я уверен, что это не так, также нет упоминания в руководстве (даже в приведенных примерах): http://ellislab.com/codeigniter/user-guide/general/models.html –

+0

Нет, есть в «CI» нет правила «соглашений об именах». –

0

Check here

  • Там нет необходимости добавлять «_model» к модели, которая зависит от вас
  • просто загрузите модель и ее использование autoload.php и добавить модель там есть хорошие оценки
Смежные вопросы