Symfony2 和 Propel 包:向 Propel 参数转换器添加额外的过滤器

Posted

技术标签:

【中文标题】Symfony2 和 Propel 包:向 Propel 参数转换器添加额外的过滤器【英文标题】:Symfony2 and Propel bundle: add additional filter to the Propel param converter 【发布时间】:2014-03-22 15:56:27 【问题描述】:

我在我的一个控制器中使用 Propel 参数转换器:(Symfony 2.4.2 + Propel 1.7)

 * @ParamConverter("center", converter="propel", class="MyCompany\Bundle\CoreBundle\Model\Center")

效果很好,但我想添加额外的过滤器,通常是在isVisible 字段上添加(但过滤器可能更复杂),有可能吗?事实上,我想要的是使用我的模型的自定义查询函数,而不是基本的findPk() 函数。

【问题讨论】:

【参考方案1】:

如果要指定用于查找实体的存储库方法,可以添加选项“repository_method”

 * @ParamConverter("center", converter="propel", class="MyCompany\Bundle\CoreBundle\Model\Center", options="repository_method" = "findByCustomQuery")

【讨论】:

Juts 测试器,不幸的是,Propel 似乎不支持此选项,而只有 Doctrine 支持。 Oki,你的意思是推进 1.7 => 推进 1.1.7,因为版本 1.7 不存在 我认为这不能在不修改代码的情况下完成。正在寻找 sn-p。 没错,我刚刚提出了一个拉取请求github.com/arffak/PropelBundle/commit/… 有了这个mofication你可以使用“query_method”选项==> @ParamConverter("center", converter="propel", class="MyCompany\Bundle\CoreBundle\Model\Center", options= "query_method" = "findByCustomQuery")

以上是关于Symfony2 和 Propel 包:向 Propel 参数转换器添加额外的过滤器的主要内容,如果未能解决你的问题,请参考以下文章

Symfony2 JSON 示例

Symfony2 - 向现有实体添加新字段

Symfony2 - 创建自己的供应商包 - 项目和 git 策略

Symfony2/FOSUserBundle - 多个包的路由问题

带有 FOSUserBundle 的 Symfony2 - 如何向我的应用程序添加没有层次结构的角色

php(propel)中的集合和数组有啥区别?