0

私はこのフレームワークを使い始めたばかりで、MVC の概念にはかなり慣れていません。現在、公式ドキュメントのチュートリアルに従っており、コントローラーは次のようになっています。

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);
}

public function goto($page)
{
    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);
}

}

ホームページを含む home.php ファイルもあります。

<?php $this->load->helper('url');?>
<div>
    <p>This is the home page</p>
</div>
    <a href="<?php echo base_url()./index.php/pages/goto/about;?>">About</a>
<div id="content">
    <form method="post" action="">
        <div>
            <label for="username">Username:</label>
            <input type="text" name="username"/>
        </div>
        <div>
            <label for="password">Password:</label> 
            <input type="password" name="password"/>
        </div>
        <div>
            <input type="submit" value="Login"/>
        </div>
    </form> 
</div>

今まではすべて機能していましたが、新しいリンクを追加して操作するにはどうすればよいですか? つまり、ホームページにリンクのリストがあるとします。ユーザーがこれらのリンクのいずれかをクリックしたとき、リクエストをどのように処理すればよいでしょうか? 「ページ」コントローラーを通過させる必要がありますか? Web サイトのすべてのページに新しいコントローラーを作成する必要がありますか?

最初のケース (より論理的に聞こえます) では、ユーザーがクリックしたリンクに基づいてユーザーを正しくリダイレ​​クトするにはどうすればよいでしょうか?

どんな助けでも大歓迎です。

4

1 に答える 1

1

リクエストをどのように処理すればよいですか?

標準的な方法ですcontroller/methods/が、もちろんルーターを使用することもできます。ルーター情報

「ページ」コントローラーを通過させる必要がありますか?

依存します。それらpagesはコントローラーに関連していますか?はいの場合は、含めます。そうでない場合は、しないでください。ポイントは、関連するコンテンツを 1 つのコントローラーの下にまとめるということです。コントローラーで管理機能を言う必要はありませんpage。あなたは?

Web サイトのすべてのページに新しいコントローラーを作成する必要がありますか?

簡単な答え。いいえ。理由は上記です。

最初のケース (より論理的に聞こえます) では、ユーザーがクリックしたリンクに基づいてユーザーを正しくリダイレ​​クトするにはどうすればよいでしょうか?

再び1点目。

于 2012-11-10T14:55:59.920 に答える