Проблема с контроллерами PHP MVC - PullRequest
0 голосов
/ 15 декабря 2010

У меня два дня с проблемой, и я не могу найти решение,

У меня есть 3 модуля Группы, События и Страницы

События могут быть в группах и на страницах, тогда я хочу получить к нему доступ таким образом:

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

У меня есть 3 контроллера: GroupController, EventController и PageController

События используют ту же модель. Но в зависимости от того, принадлежат ли они к группе или контроллеру страницы, есть метод, который меняется. Я решил создать два контроллера как

GroupEventController extends EventController
PageEventController  extends EventController

В случае GroupEventController мне также нужны данные GroupController.

Как ты это делаешь?

Ответы [ 2 ]

0 голосов
/ 15 декабря 2010

Вы должны направить /groups/:id/events/:event_id в GroupEventController к методу:

Контроллер:

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

Routing (routing.yml):

groupData:
  url: /group/:id/events/:event_id
  param: { module: groups, action: groupData }
0 голосов
/ 15 декабря 2010

Вы говорите о двойном наследовании.PHP не поддерживает это, однако есть способы обойти это.В вашем случае вы можете иметь цепочку наследования.Все маршрутизируйте через контроллеры группы или страницы.Это может расширить GroupEventController и PageEventController соответственно.И то, и другое может расширить контроллер событий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...