私はこのフレームワークを使い始めたばかりで、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 サイトのすべてのページに新しいコントローラーを作成する必要がありますか?
最初のケース (より論理的に聞こえます) では、ユーザーがクリックしたリンクに基づいてユーザーを正しくリダイレクトするにはどうすればよいでしょうか?
どんな助けでも大歓迎です。