此代码点火器代码是否正确


Is this Codeigniter code correct?

在花了大量时间从头开始做所有事情之后,我刚刚开始研究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设置。试试这个:

  1. 在apache中启用重写模块
  2. 请确保.htaccess文件配置正确。它应该是这样的:https://gist.github.com/ce2914e79193896590bc

这也删除了index.php,您应该查看它。