doctrine join列加入其他实体

时间:2014-09-05 18:58:17

标签: symfony doctrine-orm doctrine

我有3张桌子:

发布 - >类型 - >分类

我需要在每个类型传递的Post实体上获取类别,以便在过滤器表单上使用它

这可能吗?

喜欢加入和子加入

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望能够按Post过滤Category

与您希望过滤的任何其他字段一样,您必须向过滤器的Form添加FormBuilder。这种情况下的问题是绑定到表单的Entity没有属性category。这是它的财产type

因此,您需要告诉Form如何访问正确的属性。这是通过使用property_path选项实现的。 Here是它的文档。

您可以在过滤器Type中执行类似的操作:

    $builder
        ->add('category', 'entity', array(
            'label'         => 'Category',
            'data_class'    => 'Category',
            'property_path' => 'type.category',
        ))
    ;

property_path选项非常强大。它将接受PropertyAccess组件所执行的任何路径。阅读其文档here

答案 1 :(得分:0)

在学说中可以进行多次连接。请阅读this section in doctrine documentation.