我目前正致力于重构cms api的部分内容。我们有一个共享端点,用于获取(通过cget调用)所有页面/博客帖子/商店项目等。
我在控制器中所做的是通过symfony表单组件将请求绑定到过滤器对象,然后将填充的过滤器对象传递到我的存储库以获取相应的结果。
但是,我有点挣扎。我想要的是每种类型的数据库文档(在这里使用MongoDB)都有自己的FilterObject(因此会有一个PageFilter类,一个PostFilter类和一个ItemFilter类)。现在有一个棘手的部分:我希望这些不同的FilterClasses由SAME FORM TYPE实例化。这样我就可以根据请求数据将请求提交给表单类型,该表单类型将返回给定请求的合适过滤器。
但是,在事件生命周期中,似乎无法更改表单的选项(以便更改模型类)。
我考虑过在一个事件中交换模型对象,但这似乎也不起作用......
任何想法都会受到高度赞赏!