2010-12-15 136 views
0

我兩天的問題,我不能找到解決辦法,PHP MVC控制器問題

我有3個模塊組,事件和網頁

活動可以在團體和頁面,然後我要訪問這樣說:

/groups/{id}/events/{id} 
/page/{id}/events/{id} 

我有3個控制器:GroupControllerEventControllerPageController

事件使用相同的模型。但取決於他們是屬於一個組還是頁面事件控制器有一個方法發生變化。我決定創建兩個控制器作爲

GroupEventController extends EventController 
PageEventController extends EventController 

GroupEventController的情況下,我還需要GroupController數據。

你是如何做到這一點的?

+0

你用什麼框架? – powtac 2010-12-15 10:38:27

+0

我使用交響樂。 – aprencai 2010-12-15 10:41:38

+0

symfony,而不是symphony – 2010-12-15 10:51:17

回答

0

你在談論雙重繼承。 PHP不支持這個,但是有辦法解決這個問題。就你而言,你可以擁有繼承鏈。通過組或頁面控制器路由所有內容。這些可以分別擴展GroupEventController和PageEventController。這兩個都可以擴展事件控制器。

+0

那麼,我是否有路由直接/ groups/id/events/id到 - > GroupEventController? – aprencai 2010-12-15 12:55:15

+0

我不確定你的意思。但是,這是我回答的第二個問題。我懷疑這個問題是你不知道如何問你真正想問的問題。 – DampeS8N 2010-12-15 12:57:19

0

您必須航線/groups/:id/events/:event_idGroupEventController的方法:

控制器:

public function executeGroupData(sfWebRequest $request){ 
//Logic 
} 

路由(routing.yml中):

groupData: 
    url: /group/:id/events/:event_id 
    param: { module: groups, action: groupData }