CodeIgniter как достать из модели? - PullRequest
0 голосов
/ 02 февраля 2011

Я пытаюсь изучить PHP с новейшей платформой CodeIgniter, но у меня возникли некоторые проблемы.Я не могу сказать, если мне просто не повезло, или мне не хватает некоторых фундаментальных понятий.

Вот мой View / index.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title><?php echo $title; ?></title>
</head>
<body>

<?php foreach($forums as $f): ?>
<table>
<tr><td style="background-color:#ccc; font-weight:bold border: 1px solid black;">
<?php echo $f['name']; ?>
</td></tr></table><br />
<?php endforeach; ?>

</body>
</html>

А вот мои Модели/index.php:

class Index_Model extends CI_Model {

    function __construct()
    {
        // Call the Model constructor
        parent::__construct();  
    }

    function getIndexListing(){
        $query = $this->db->query('Select name from Forums where parentid=0 order by sortorder asc');
        $rows =  $query->result_array();
        $query->free_result();  
    }  
}

А вот мои контроллеры / index.php

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

class Index extends CI_Controller {

    function __construct()
    {
        parent::__construct();
        // load users model
        if (! isset($this->Index_Model))
        {
        //   $this->load->model( 'Index_Model' );
        }
    }

    function index()
    {
        $data['forums']= $this->Index_Model->getIndexListing();
        $data['title'] = 'Welcome!';
        $this->load->view('index.php', $data);
    }
}

Проблема: я не могу понять, как позвонить getIndexListing().Когда я делаю, как здесь, я получаю ошибку Undefined property: Index::$Index_Model.Но когда я раскомментирую $this->load->model( 'Index_Model' );, я получаю исключения из памяти.

Как правильно позвонить getIndexListing(), чтобы я мог заполнить свою страницу?Я неправильно назвал свои классы или файлы?

1 Ответ

5 голосов
/ 02 февраля 2011

Прежде всего вам нужно изменить имя контроллера, так как индекс - это зарезервированное имя http://codeigniter.com/user_guide/general/reserved_names.html

Тогда вам потребуется два разных имени для класса контроллера и модели, они не могут быть такими же, как вы2 класса с одинаковыми именами в одном пространстве имен.Итак, скажем, ваш контроллер - это то, что имеет смысл иметь класс модели наподобие what_model

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