PHP MVC控制器问题

PHP MVC控制器问题,php,model-view-controller,symfony1,Php,Model View Controller,Symfony1,我有一个问题两天了我找不到解决办法 我有3个模块组、事件和页面 事件可以在组和页面中,然后我希望通过以下方式访问它: /groups/{id}/events/{id} /page/{id}/events/{id} 我有3个控制器:GroupController、EventController和PageController 这些事件使用相同的模型。但根据它们是属于组还是属于页面,事件控制器有一个方法可以更改。我决定创建两个控制器作为 GroupEventController extends Ev

我有一个问题两天了我找不到解决办法

我有3个模块组、事件和页面

事件可以在组和页面中,然后我希望通过以下方式访问它:

/groups/{id}/events/{id}
/page/{id}/events/{id}
我有3个控制器:
GroupController
EventController
PageController

这些事件使用相同的模型。但根据它们是属于组还是属于页面,事件控制器有一个方法可以更改。我决定创建两个控制器作为

GroupEventController extends EventController
PageEventController  extends EventController
对于
GroupEventController
,我还需要
GroupController
数据


你是如何做到这一点的?

你说的是双重继承。PHP不支持这一点,但是有一些解决方法。在您的情况下,您可以拥有继承链。通过组或页面控制器路由所有内容。这些可以分别扩展GroupEventController和PageEventController。这两种方法都可以扩展事件控制器。

您必须将
/groups/:id/events/:Event\u id
路由到
GroupEventController
到以下方法:

控制器:

public function executeGroupData(sfWebRequest $request){
//Logic
}
路由(Routing.yml):


“我还需要GroupController数据”是什么意思。控制器没有数据,只有方法。数据位于模型层,您可以从任何控制器访问该层。对不起,我想说的是方法。那么,我是否可以直接将/groups/id/events/id路由到-->GroupEventController?我不确定您的意思。然而,这是我回答的第二个问题。我怀疑问题在于你不知道如何问你真正想问的问题。
groupData:
  url: /group/:id/events/:event_id
  param: { module: groups, action: groupData }