PHP MVC 控制器问题

发布于 2024-10-07 13:11:03 字数 543 浏览 3 评论 0 原文

我遇到问题两天了,找不到解决方案,

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

事件可以在组和页面中,然后我想以这种方式访问​​它:

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

我有 3 个控制器: GroupControllerEventControllerPageController

事件使用相同的模型。但根据它们是否属于组或页面,事件控制器有一个不同的方法。我决定创建两个控制器,

GroupEventController extends EventController
PageEventController  extends EventController

GroupEventController 的情况下,我还需要 GroupController 数据。

你如何做到这一点?

I'm two days with an issue and I can not find the solution,

I have 3 modules Groups, Events and Pages

Events can be in groups and pages, then I want to access it this way:

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

I have 3 controllers: GroupController, EventController and PageController

The events use the same model. But depending on whether they belong to a group or page event controller has a method that changes. I decided to create two controllers as

GroupEventController extends EventController
PageEventController  extends EventController

In the case of a GroupEventController, I also need GroupController data.

How do you do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

牵你的手,一向走下去 2024-10-14 13:11:03

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

You are talking about dual inheritance. PHP does not support this, however there are ways around it. In your case, you can have the inheritance chain. Route everything through the Group or Page controllers. These can extend the GroupEventController and PageEventController respectively. And both of those can extend the Event controller.

淡墨 2024-10-14 13:11:03

您必须将 /groups/:id/events/:event_id 路由到 GroupEventController 的方法:

Controller:

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

Routing(routing.yml):

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

You must route /groups/:id/events/:event_id to GroupEventController to a method :

Controller:

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

Routing(routing.yml):

groupData:
  url: /group/:id/events/:event_id
  param: { module: groups, action: groupData }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文