Php CodeIgniter中的链路和控制器
我刚刚开始使用这个框架,我对MVC概念还相当陌生。现在,我正在遵循有关官方文档的教程,我的控制器如下所示: 我还有一个home.php文件和主页:Php CodeIgniter中的链路和控制器,php,codeigniter,Php,Codeigniter,我刚刚开始使用这个框架,我对MVC概念还相当陌生。现在,我正在遵循有关官方文档的教程,我的控制器如下所示: 我还有一个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
<?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>
这是主页
用户名:
密码:
到目前为止,一切正常,但我如何添加和使用新链接?我的意思是,假设你在主页上有一个链接列表;当用户单击其中一个链接时,我应该如何处理请求?我应该让他们通过“页面”控制器吗?我应该为网站的每个页面创建一个新的控制器吗
在第一种情况下(对我来说,这听起来更符合逻辑),如何根据用户单击的链接正确重定向用户
任何帮助都将不胜感激
我该如何处理这些请求
标准方法是控制器/方法/
,但当然你们可以使用路由器
我应该让他们通过“页面”控制器吗
视情况而定。那些页面是否与控制器相关?如果是,则包括。如果没有,就不要。重点是,将相关内容集中在一个控制器下。您不希望在页面
控制器中说出管理功能。你知道吗
我应该为网站的每个页面创建一个新的控制器吗
答案很简单。不,原因在上面
在第一种情况下(对我来说,这听起来更符合逻辑),如何根据用户单击的链接正确重定向用户
还是第一点 通常,您可以编写一个控制器/视图/模型并处理任意数量的页面,您需要将页面标题、页面正文和/或其他内容存储(数据库)在某个位置,以便可以轻松地动态生成/缓存和操作。@GeoPhoenix非常感谢您的评论。你能举例说明你在说什么吗?首先,非常感谢你的回答。“pages”是控制器,但问题是目前它只将我重定向到主页。假设我有类似于“”的内容,这会将我重定向到“关于”页面,而无需通过控制器。这在MVC概念中正确吗?
将显示404错误页面,除非您在路由器中使用规则。如果您确实使用路由器以页面/about
的形式说关于
,尽管在url中您只能看到关于
[方法],它仍然会进入页面
控制器。很抱歉,我没有跟随。事实上,它给了我一个404错误,我应该如何改变链接使其工作?我尝试了“”,但它告诉我该页不存在…假设您的控制器是page
,方法是about
。链接应该是,
。重要提示:别忘了加载url帮助程序。我已经更新了示例代码,向您展示了我目前拥有的内容,因为我似乎无法使其正常工作:(
<?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>