我有两个实体说“用户”和“用户元”。我正在使用 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 中工作。请建议。