2011-08-03 8 views
1

を見つけていない私は成功した私は、チュートリアルを従っていましたし、私のプロジェクトに新しいコントローラを追加した上で
後で歓迎インデックスページを開いてCIをインストールしたUbuntuの10.10とCodeIgniterの2.0.2
使用します。- 渡す引数 - ページ

class Start extends CI_Controller{ 
    var $base; 
    var $css; 

    function __construct() { 
     parent::__construct(); 
     $this->base=$this->config->item('base_url'); 
     $this->css=$this->config->item('css'); 
     } 


    function hello($name){ 
     $data['css'] = $this->css; 
     $data['base'] = $this->base; 
     $data['mytitle'] = 'Welcome to this site'; 
     $data['mytext'] = "Hello, $name, now we're getting dynamic!"; 
     $this->load->view('testview', $data); 
    } 
} 

と同様に、ビュー(testview.php)とcss変数です。 http://localhost/ci/index.php/index/start/hello/fredを実行してテストしようとすると、404 page not foundが得られます。

答えて

2

使用このクラスの宣言の代わりに

class Start extends CI_Controller{ 

、代わりにあなたのPHP4のコンストラクタの

使用この代わりのStart()

function __construct(){ 
    parent::__construct(); 
    $this->base=$this->config->item('base_url'); 
    $this->css=$this->config->item('css'); 
} 

あなたがしている実際の理由あなたに感謝します404を取得するのは、あなたがfuを見つけるように言っているからですこれはfredと呼ばれています。あなたはおそらくヒットする意味しているURLはこれです...

http://localhost/ci/index.php/start/hello/fred 

の2.0.x以降、CodeIgniterでは、そのベースコントローラのクラス名を変更しましたし、他のものの間で、PHP5のスタイルのコンストラクタにすべてを移動しました。

おそらく古いチュートリアルに従っている可能性があります。

+1

は、URLが 'HTTPではないでしょうか? –

+0

うん、URLの基底をよく見ていない、ちょうど彼が 'hello'関数を呼んでいないことに気づいた。 – jondavidjohn

+0

あなたが言ったように私はやったが、同じ問題が残っている。それはいくつかのApacheの設定のものですか? –

2

古いチュートリアルを使用したようです。 CodeIgniter 2では、いくつかの点が異なります。

  1. extend CI_Controller代わりのextend Controller
  2. 代わりにクラス名のコンストラクタのために__constructを使用してください。

    function __construct(){ 
        parent::__construct(); 
        // More stuff 
    } 
    
  3. urlはhttp://localhost/ci/index.php/start/hello/fredである必要があります。 CodeIgniterのURLがそうのように使用されます:// localhostの/ CI/index.phpを開始/ /こんにちは/ fred`:

    http://localhost/ci/index.php/<controller>/<method>/<params> 
    
+0

私はそれが働いているというアイデアを得たので、この答えをありがとう。 :) – jit