【发布时间】:2013-09-09 22:53:43
【问题描述】:
我在 helloworld.php 中有以下代码:
<?php
class Helloworld extends CI_Controller {
public function __construct()
{
parent::__construct();
}
public function index()
{
$this->load->model("helloworld_model");
$data["result"] = $this->Helloworld_model->getData();
$data["page_title"] = "CI Helloworld appis";
$this->load->view("helloworld_view", $data);
}
}
?>
代码在调用父构造函数后停止执行,没有给出任何错误消息。 /var/log/apache2/error.log 中也没有出现任何内容。如果我在构造函数调用之前回显某些内容,则会回显它。如果我在构造函数调用之前输入乱码,则会打印出正确的错误消息。为什么会这样?
该站点在带有 Code Igniter 2.1.4 的 Ubuntu 服务器 12.04 上运行。和 PHP 5.3。
其他文件是helloworld_model.php:
<?php
class Helloworld_model extends CI_Model {
public function __construct()
{
parent::__construct();
$this->load->database();
}
public function getData()
{
$query = $this->db->get("data");
if ($query->num_rows() > 0)
{
return $query->row_array();
}
else
{
show_error("Database is empty");
}
}
}
?>
还有helloworld_view.php:
<html>
<head>
<title><?php echo $page_title ?></title>
</head>
<body>
<?php foreach($result as $row): ?>
<h3><?php echo $row["title"]?></h3>
<p><?php echo $row["text"]?></p>
<br />
<?php endforeach ?>
</body>
</html>
据我所知,Controller 构造函数是绝对首先被调用的,所以我认为在这个阶段其余的文件并不重要(?)。
【问题讨论】:
-
请显示其余代码。当您执行
parent::__construct(); echo 'Hello';时会发生什么?您是否还启用了错误报告并启用了display_errors? -
父构造函数调用后没有打印任何内容。 display_errors 开启,所有其他错误都正常打印。稍后,我将发布我的其余代码。
-
将构造函数全部移除会发生什么?我注意到您在页面底部关闭了 php 标签,尝试从控制器底部删除关闭 php 标签和任何空格。
-
@Jeemusu 如果我删除构造函数并且在其他函数中也没有打印任何内容,页面上绝对不会出现任何内容。删除结束标签会导致解析错误。删除空白没有任何作用。
-
我是在一个非常糟糕的教程之后开始执行此操作的,该教程有很多错误,并且适用于旧版本的 CI,但我尝试在使用 2.1.4 的过程中对其进行修复。我想我只是要从更新的教程重新开始,因为我只是不明白这有什么问题。
标签: php codeigniter