2012-03-05 14 views
0

私はMVCを使用してウェブサイトを設定しようとしていますが、私は最初から立ち往生しています。PHP関数のパラメータが正しく機能しませんか?

私はのように見えるpages.phpファイル持ってproject0 /アプリケーション/コントローラで

:含む、

<?php 

class Pages extends CI_Controller { 

public function view($page = 'home') 
{ 

if (!file_exists('application/views/pages/'.$page.'.php')) 
{ 
    // Whoops, we don't have a page for that! 
    show_404(); 
} 

$data['title'] = ucfirst($page); // Capitalize the first letter 

$this->load->view('templates/header', $data); 
$this->load->view('pages/'.$page, $data); 
$this->load->view('templates/footer', $data); 

} 
} 

とproject0 /アプリケーション/ビュー/ページhome.phpとabout.phpという名前の2つのファイル内に"こんにちは世界"。

http://project0/index.php/pages/view/aboutにアクセスすると、404エラーが表示されます。home.phpまたはabout.phpファイルが存在しないようです。

誰かが私を助けることができますか?

答えて

1

スクリプトではgetcwd();を試してから、その結果(現在の作業ディレクトリ)を相対パス'application/views/pages/'.$page.'.php'に対して再度確認してください。私はあなたが思っているディレクトリであなたのページを探しているわけではないと思います。

+1

ありがとうございます。あなたは正しく、間違ったディレクトリで作業していた。それは今働きます! – saltandpepper

1

あなた自身でエラーを解決しました。あなたのページhome.phpとabout.phpに配置されています。私はあなたのコードが動作するかどうかだと思う project0/application/views

しかし、あなたが投稿したコードが

project0/application/views/pages/

+0

申し訳ありません、私は2つのファイルが 'project0/application/views/pages'にあることを意味しました。 – saltandpepper

+0

私はOPでそれを編集しました。 – saltandpepper

1

でそれらを探しています(あなたの設定に依存します実際のスクリプトがどこから実行されているか)を確認することができますが、いくつかの方法のうちの1つを使用して、もっと簡単にすることができます。

あなたはGETCWD()関数を使用することができます

if (!file_exists(getcwd().'application/views/pages/'.$page.'.php')) 

をそれとも、例えば、自分のメインの設定ファイルに永続的なサイトのパスを定義することができます。

$config['path'] = '/home/project0/'; 

...

if (!file_exists($config['path'].'application/views/pages/'.$page.'.php')) 
+0

あなたが正しいです、私は「間違った」ディレクトリで働いていました。 getcwd()のおかげで今すぐ動作します。 – saltandpepper

1

相対パスの代わりに絶対パスを指定してください。'application/views/pages/'.$page.'.php' - 正しく動作しない可能性があります。

1

ファイルの場所が間違っているかどうかを確認している可能性があります。file_existsは、そのパスをproject0/application/controllersから探しています。試してみてください:

if (!file_exists('../views/pages/'.$page.'.php')) 
+0

試してみましたが、うまくいきません... – saltandpepper

+0

他の回答で示唆されているように絶対パスを使用する必要があります。 – bfavaretto

関連する問題