如何制作一个可在以下网址上访问的控制器:
/index.php/my_controller/controller_function/another_function
或
/index.php/account/profile/edit
我知道这是可能的,但我找不到任何可以解释这一点的网站,从手册中我已经读到控制器应该在文件夹中,但是那么呢?
答案 0 :(得分:1)
创建一个名为class Account extends CI_Controller
的控制器,其方法为profile
,参数为$action
- 当您访问{{1}时,这将自动填充edit
}}
/account/profile/edit
答案 1 :(得分:1)
作为Joe的回答的替代方案,当我只是将控制器函数直接映射到我在URL路径中看到的而不是调用其他函数时,我发现我的代码更容易组织。根据您计划在帐户类中执行的操作量,从这个单一控制器维护可能会很麻烦。因此,如果你要做的就是实现特定的URL结构,你可以将控制器嵌套在CodeIgniter控制器文件夹的子文件夹中。
因此/index.php/account/profile/edit
将映射到/application/controllers/account/profile.php
,edit
将成为profile.php
中的函数。这样,您还可以为帐户内的不同功能维护单独的控制器。例如除了个人资料,您还可以创建一个单独的delete.php
控制器来处理帐户删除。
您可以在手册中详细了解CodeIgniter如何将URL映射到控制器,函数和变量:http://codeigniter.com/user_guide/general/urls.html