CodeIgniter - невозможно использовать объект - PullRequest
1 голос
/ 17 мая 2010

РЕЗЮМЕ:

Когда я звоню ... / index.php / product, я получаю:

Неустранимая ошибка: вызов функции-члена get_prod_single () для необъекта в /var/www/sparts/main/controllers/product.php по линии 16

оскорбительная строка 16:

$data['pn_oem'] = $this->product_model->get_prod_single($product_id);

Похоже, я не знаю, как сделать это рабочим объектом. Вы можете мне помочь?

КОД:

В моей папке / Models есть product_model.php :

<?php
class Product_model extends Model {

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

    function get_prod_single($product_id)
    {
        //This will be a DB lookup ...
        return 'foo';  //stub to get going
    }   
}
?>

В моей папке / controllers у меня есть product.php :

<?php
class Product extends Controller {

    function Product()
    {
        parent::Controller();
    }

    function index()  {

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

      $product_id = 113; // will get this dynamically

      $data['product_id'] = $product_id;
      $data['pn_oem'] = $this->product_model->get_prod_single($product_id);

      $this->load->view('prod_single', $data);
    }
}
?>

Ответы [ 3 ]

3 голосов
/ 17 мая 2010

Просто измените:

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

до:

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

Похоже, имя, переданное загрузчику, ссылается на имя файла.

1 голос
/ 17 мая 2010

Имена моделей CI чувствительны к регистру, поэтому «product_model» вместо «Product_model» выполнит эту работу. Если вы хотите, вы можете установить какой-то псевдоним. Если я правильно помню, он выглядит примерно так:

$this->load->model('product_model', 'Product_model');

это бы тоже сработало.

EDIT: небольшая опечатка в псевдониме. фиксированный

1 голос
/ 17 мая 2010

Я думаю, что это $ this-> load-> model ('Product_model'); создаст модель с именем Product_model, а не product_model ... PHP чувствителен к регистру.

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