CodeIgniter中的链接和控制器

时间:2012-11-10 14:45:46

标签: php codeigniter

我刚开始使用这个框架,而且我对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>

到目前为止一切正常,但我如何添加和使用新链接?我的意思是,假设你在主页上有一个链接列表;当用户点击其中一个链接时,我该如何处理这些请求?我应该让他们通过“页面”控制器吗?我应该为网站的每个页面创建一个新的控制器吗?

在第一种情况下(对我来说听起来更合乎逻辑),如何根据用户点击的链接正确重定向用户?

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

  

我该如何处理这些请求?

标准方式是controller/methods/但是当然可以使用路由器。 Router info

  

我应该让他们通过“页面”控制器吗?

取决于。这些pages是否与控制器有关?如果是,那么包括。如果不是没有。重点是,将相关内容汇集在一个控制器下。您不希望在page控制器中说出管理功能。你呢?

  

我应该为网站的每个页面创建一个新的控制器吗?

简单的回答。不,原因在于上面。

  

在第一种情况下(对我来说听起来更合乎逻辑),如何根据用户点击的链接正确重定向用户?

再次第一点。