PHP MVC 控制器问题
我遇到问题两天了,找不到解决方案,
我有 3 个模块组、事件和页面
事件可以在组和页面中,然后我想以这种方式访问它:
/groups/{id}/events/{id}
/page/{id}/events/{id}
我有 3 个控制器: GroupController
、EventController
和 PageController
事件使用相同的模型。但根据它们是否属于组或页面,事件控制器有一个不同的方法。我决定创建两个控制器,
GroupEventController extends EventController
PageEventController extends EventController
在 GroupEventController
的情况下,我还需要 GroupController
数据。
你如何做到这一点?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你说的是双重继承。 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.
您必须将
/groups/:id/events/:event_id
路由到GroupEventController
的方法:Controller:
Routing(routing.yml):
You must route
/groups/:id/events/:event_id
toGroupEventController
to a method :Controller:
Routing(routing.yml):