Php CodeIgniter如何从模型中获取?
我正在尝试使用最新的CodeIgniter框架学习PHP,但我遇到了一些问题。我不知道我是否只是运气不好,或者我是否遗漏了一些基本概念 这是我的View/index.phpPhp 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>
<!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()函数中返回一些内容,但不返回任何值。