在花了大量时间从头开始做所有事情之后,我刚刚开始研究PHP框架。在一个朋友推荐给我后,我想我会试试Codeigniter。
我完成了第一个教程,没有任何问题,但我被第二个教程卡住了。
起初,我的代码与教程完全相同:
<?php
class Blog extends CI_Controller{
function Blog()
{
parent::CI_Controller();
$this->load->scaffolding('entries');
}
public function index(){
$data['title'] = "My Blog Title";
$data['heading'] = "An intresting title";
$data['todo'] = array('create media player','design site','finish project');
$this->load->view('blog_view',$data);
}
}
?>
但我遇到了一个内部服务器错误。在看了用户指南之后,它显示了使用构造函数的不同方式。
我将代码更改为文档规范。
<?php
class Blog extends CI_Controller{
public function __construct() {
parent::__construct();
$this->load->scaffolding('entries');
}
public function index(){
$data['title'] = "My Blog Title";
$data['heading'] = "An intresting title";
$data['todo'] = array('create media player','design site','finish project');
$this->load->view('blog_view',$data);
}
}
?>
但我还是有一个内部错误。我不知道我的代码是错误的还是我对其他东西的配置错误。一些建议会很好,谢谢。
编辑:澄清一下——我只在向类中添加构造函数时得到一个内部错误。
这很可能是因为您正在尝试在最新版本的CodeIgniter中加载scaffolding
。
脚手架从1.6版开始贬值。它在2.0中被删除,最新版本现在是2.0.2
就使用所提供的代码段中的哪一个而言,声明构造函数(__construct
)的后一种形式比使用类名(Blog
)更可取。该方法也与CodeIgniter自2.0以来的核心类一致。
顺便说一句,我不知道CodeIgniter为什么在教程中包含这样过时的示例。EllisLab最近似乎对CI项目完全失去了兴趣,这真是太遗憾了:(
内部错误意味着服务器配置错误。
通常是.htaccess文件或apache设置。试试这个:
- 在apache中启用重写模块
- 请确保.htaccess文件配置正确。它应该是这样的:https://gist.github.com/ce2914e79193896590bc
这也删除了index.php,您应该查看它。