Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CodeIgniter如何从模型中获取?_Php_Codeigniter - Fatal编程技术网

Php CodeIgniter如何从模型中获取?

Php CodeIgniter如何从模型中获取?,php,codeigniter,Php,Codeigniter,我正在尝试使用最新的CodeIgniter框架学习PHP,但我遇到了一些问题。我不知道我是否只是运气不好,或者我是否遗漏了一些基本概念 这是我的View/index.php <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title><?php echo $title; ?></title> </head>

我正在尝试使用最新的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>
<?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);
    }
}
这是我的控制器/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>
<?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);
    }
}

首先,您需要更改控制器名称,因为索引是保留名称


然后,控制器类和模型类必须有两个不同的名称,它们不能相同,因为同一命名空间中不能有两个同名的类。假设你的控制器是任意的,那么让模型类成为任意的模型是一个很好的实践。首先,你需要更改控制器名称,因为索引是保留名称


然后,控制器类和模型类必须有两个不同的名称,它们不能相同,因为同一命名空间中不能有两个同名的类。所以,假设你的控制器是什么,那么让模型类像什么一样是一个好的实践,而且模型不一定与控制器绑定。。。模型应以其表示的业务对象或db表命名,如。。在这种情况下,类似于
Forum\u Model
我将我的模型更改为
Index\u Model
,但似乎没有帮助。您需要更改控制器名称它不能是Index它是保留名称这正是主要问题,其次是PHP的类/文件命名约定。模型也不一定与控制器绑定。。。模型应以其表示的业务对象或db表命名,如。。在这种情况下,类似于
Forum\u Model
我将我的模型更改为
Index\u Model
,但似乎没有帮助。您需要更改控制器名称它不能是Index它是保留名称这正是主要问题,其次是PHP的类/文件命名约定。可能是在控制器中注释掉了模型加载行:$this->load->model('Index_model');因此,正如错误所说,您的索引控制器没有定义属性$Index\u Model。您可以删除if(!isset($this->Index\u Model))检查。Codeigniter将只加载模型一次。您可能希望从getIndexListing()函数返回一些内容,但没有返回任何值。这可能是因为您在控制器中注释掉了模型加载行:$this->load->model('Index_model');因此,正如错误所说,您的索引控制器没有定义属性$Index\u Model。您可以删除if(!isset($this->Index\u Model))检查。Codeigniter只会加载模型一次。您可能希望从getIndexListing()函数中返回一些内容,但不返回任何值。