2011-06-03 101 views
0

我刚开始在浪费时间花费大量时间从头开始研究PHP框架。我想我会给朋友推荐给我的Codeigniter。这个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); 
    } 
} 

?> 

但我仍然得到一个内部错误。我不知道我的代码是否错误,或者我配置了其他的东西。有些建议很好,谢谢。

编辑: 澄清 - 当我将构造函数添加到类时,我只会得到一个内部错误。

+0

当web服务器配置错误时,您可能会发生内部错误。其他应用程序是否正常工作? – 2011-06-03 10:46:48

+0

是的,只有当我有构造函数时它不起作用 - 我将编辑这个问题。 – Sheldon 2011-06-03 10:50:24

+0

你正在关注哪个教程?这对于其他人试图找到同样问题的答案很重要。 – erisco 2011-06-03 13:55:36

回答

5

这很可能是因为您试图在最新版本的CodeIgniter中加载scaffolding

脚手架从版本1.6开始就是depreciated。这是removed 2.0,现在2.0.2

最新版本是无论在哪个您提供的片段使用的,声明的构造函数(__construct)优于使用类名的后一种形式(Blog) 。这个方法也符合2.0以来的CodeIgniter的核心类。

另外,我不知道CodeIgniter为什么在他们的教程中包含这些过时的示例。 EllisLab的似乎最近已经失去了CI项目总利息,这是一种耻辱:(

0

内部错误意味着有误服务器配置

通常.htaccess文件或Apache设置试试这个:。

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

这也删除了index.php,你应该看看。