簡體   English   中英

CodeIgniter如何從Model獲得?

[英]CodeIgniter how to get from Model?

我正在嘗試使用最新的CodeIgniter框架學習PHP,但是遇到了一些問題。 我不能說是運氣不好還是缺少一些基本概念。

這是我的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>

這是我的Models / 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();  
    }  
}

這是我的Controllers / 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()以便填充頁面的正確方法是什么? 我是否給我的班級或文件命名錯誤?

首先,您需要更改控制器名稱,因為索引是保留名稱http://codeigniter.com/user_guide/general/reserved_names.html

然后,對於控制器類和模型類,您將必須具有兩個不同的名稱,因為它們不能相同,因為在同一名稱空間中不能具有兩個具有相同名稱的類。 因此,假設您的控制器是什么,那么擁有像what_model這樣的模型類是一個好習慣

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM