构建"嵌套"控制器

时间:2013-08-20 17:55:03

标签: php cakephp cakephp-routing

我希望以最好的方式构建我的应用程序。

我正在添加"服务"部分到我的申请。这将包括一个索引方法,以及应该通过/service/service1//service/service2/等达到的多个服务。

我想为每项服务设一个ServiceController和一种方法。然后,每个服务都会有一些ajax方法,例如/service/service1/getdata。但是使用这种结构getdata不是它自己的方法,而是一个变量(我可以提供service1函数,但它不是我想要的)。

我已经考虑过提供服务"插件,但如果我想要做的就是将/service/部分添加到URL中,那会感到多余。

也是路由,但我无法想出一个好方法(例如,路由/服务/ service1到/ service1 /)。这样我还需要一个额外的控制器,它具有/service/的索引方法。控制器文件夹会对所有服务造成混乱,所以我最不想做的就是附加服务'文件名是否可行。

我如何构建这样的结构?

1 个答案:

答案 0 :(得分:0)

只需构建一个普通的“ServicesController”(注意复数)。

然后,如果您真的想要,可以使用routing进行“服务”单项工作。

在您的控制器中,执行操作:

report() { ... }
api() { ... }
report_get_data() { ... }
api_whatever() { ... }

或者,如果功能应该相同,只有一个用于ajax,一个用于非,那么只需要一个操作并检查请求是否为ajax:

if($this->request->is('ajax') { ...