我有两个实体说“Users”和“UsersMeta”。我使用AliDataTable Bundle来显示来自两个表的数据,但我在表之间有1到多个关系。因此,当我正在加入时,我得到的结果是正确的,但我不希望这样。 假设两个表的数据为
用户
id|firstname|lastname|email
1 |abc |xyz |abc@abc.com
2 |def |zyx |def@test.com
UsersMeta
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包获取上述格式的数据?我已经读过我们可以自定义字段值的呈现,但在上面的情况下我需要更改表的呈现。我不知道这是否可能,因为我刚刚开始在Symfony2工作。请建议。