1

我有两个实体说“用户”和“用户元”。我正在使用 AliDataTable Bundle 来显示两个表中的数据,但表之间存在一对多的关系。因此,当我加入时,我得到的结果是正确的,但我不希望这样。假设这两个表的数据为

用户

id|firstname|lastname|email
1 |abc      |xyz     |abc@abc.com 
2 |def      |zyx     |def@test.com

用户元

Meta_id|User_id|fieldname|fieldValue
      1|1      |dob      |ddd
      2|1      |gender   |ggg
      3|2      |dob      |ddd2
      4|2      |gender   |ggg2

我正在使用 AliDataTable 作为列表

Firstname|lastname|Email       |Fieldname|Fieldvalue
      abc|xyz     |abc@test.com|dob      |ddd
      abc|xyz     |abc@test.com|gender   |ggg
      def|zyx     |def@test.com|dob      |ddd2
      def|zyx     |def@test.com|gender   |ggg2

AliDataTable配置我的示例代码如下

private function _DataTable()
{
    $controller_instance = $this;
    $datatable = $this->get('datatable');
    return $datatable->setEntity("xxx\Entity\ User ", "u")                          
                ->setFields(
                        array(
                            "First Name"      => 'u.firstName',     
                            "Last Name"       => 'u.lastName',
                            "Email"           => 'u.email',
                           "FieldName"        => 'um.fieldName',
                            "FieldValue"      => 'um.fieldValue',
                            "_identifier_"    => 'u.userId')                    
                        )
                ->addJoin('u. UsersMeta', 'um', \Doctrine\ORM\Query\Expr\Join::INNER_JOIN)
                ->setWhere(                                                     
                    'u.userId = um.userId
                )

                })

                ->setHasAction(true);                                           
}

我希望数据显示为

Firstname|lastname|Email       |dob      |gender
      abc|xyz     |abc@test.com|ddd      |ggg
      def|zyx     |def@test.com|ddd2     |ggg2

那么,如何使用 AliDataTable bundle 获取上述格式的数据?我读过我们可以自定义字段值的呈现,但在上述情况下,我需要更改表格的呈现。我不知道这是否可能,因为我刚开始在 Symfony2 中工作。请建议。

4

0 回答 0