2011-06-03 98 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,你應該看看。