我刚刚使用codeigniter框架启动了一个简单的php项目,我的步骤如下。
创建名为user.php
的控制器。
之后在子目录articles_list.php
内创建了一个视图public
。
在控制器中加载视图后。
但是致命错误调用null上的成员函数view()。 为此,我使用3.2.1版本的codeigniter框架。
我是这个框架的初学者。请告诉我我错在哪里。
user.php(Controller)
<?php
class User extends MY_Controller{
public function __construct() {
parent::__construct();
}
public function index(){
echo "list articles";
$this->load->view('public/articles_list');
}
}
?>
articles_list.php(查看)
<html>
<head>
<title>Article List</title>
<!--<link rel="stylesheet" type="text/css" href="http://localhost/codeigniter/assets/css/bootstrap.min.css">-->
</head>
<body>
<p>hello</p>
</body>
</html>
提前致谢。
这样的错误..
列出文章 遇到PHP错误
Severity: Notice
Message: Undefined property: User::$load
Filename: controllers/user.php
Line Number: 8
Backtrace:
File: C:\xampp\htdocs\codeigniter\application\controllers\user.php
Line: 8
Function: _error_handler
File: C:\xampp\htdocs\codeigniter\index.php
Line: 315
Function: require_once
Fatal error: Call to a member function view() on null in C:\xampp\htdocs\codeigniter\application\controllers\user.php on line 8
A PHP Error was encountered
Severity: Error
Message: Call to a member function view() on null
Filename: controllers/user.php
Line Number: 8
Backtrace:
答案 0 :(得分:0)
控制器
<?php
class User extends CI_Controller {
public function __construct() {
$this->load->database();
}
public function show($id) {
$this->load->model('User_model');
$list = $this->User_model->get_list($id);
$data['detail'] = list;
$this->load->view('list', $data);
}
}
?>
模特
<?php
class User_model extends CI_Model {
public function __construct() {
$this->load->database();
}
public function get_list($id) {
if($id != FALSE) {
$query = $this->db->get_where('list', array('id' => $id));
return $query->result();
}
else {
return FALSE;
}
}
}
?>
视图
<?php
foreach($detail as $row){
<?php print $row->field1; ?>
<?php print $row->field2; ?>
}
?>
了解更多信息
答案 1 :(得分:0)
将您的控制器另存为User.php。请注意, U 是大写的。在codeigniter 3.1.0及以上版本中,需要保存控制器和模型的文件名,如 U ser.php。 同时将 MY_Controller 更改为 CI_Controller
希望这会有所帮助:)
答案 2 :(得分:0)
实际上,MY_Controller代码应类似于:-
<?php
class MY_Controller extends CI_Controller
{
public function __construct()
{
// echo "Testing";
parent::__construct();
}
}
?>
实际上,MY_Controller代码应类似于:-
答案 3 :(得分:0)
如果您使用更新Ci而不是尝试:
function __construct()
{
parent::__construct();
}
答案 4 :(得分:0)
您必须将该模型的名称添加到配置>自动加载文件中。