1
只是想知道ZF2的水合結果集是否可以水合多個實體。考慮下面的代碼片段:Zf2 HydratingResultSet和多個實體
$sql = new Sql($this->adapter);
$sqlObject = $sql->select()
->from([
'ART' => 'acl_roles'
])
->join([
'ARTT' => 'acl_role_types',
],
'ART.type_id = ARTT.id',
[
'ARTT.id' => 'id',
'ARTT.identifier' => 'identifier',
'ARTT.name' => 'name',
'ARTT.status' => 'status',
'ARTT.dateAdded' => 'date_added',
],
Select::JOIN_INNER
)
->where([
'ART.identifier' => $identifier,
])
->columns([
'ART.id' => 'id',
'ART.type_id' => 'type_id',
'ART.identifier' => 'identifier',
'ART.name' => 'name',
'ART.status' => 'status',
'ART.description' => 'description',
'ART.dateAdded' => 'date_added',
]);
現在,如果查詢是在一個單一的實體,我可以這樣做:
$stmt = $sql->prepareStatementForSqlObject($sqlObject);
$resultset = $stmt->execute();
if ($resultset instanceof ResultInterface && $resultset->isQueryResult()) {
$hydratingResultSet = new HydratingResultSet(new ArraySerializable, new EntityClass);
$hydratingResultSet->initialize($resultset);
return $hydratingResultSet->current();
}
然而,在我來說,我需要的保溼結果集能夠建立並返回多個實體(即AclRoleEntity和AclRoleTypeEntity)。這是可能的嗎?如果是的話(考慮結果集是兩個實體組合的平面陣列)。如果沒有更好的替代方案來實現這一點,而不使用Doctrine/Propel?
謝謝
感謝您的支持。正如你所提到的,我必須用我自己的定製水合劑。 :) – 2015-04-11 10:14:46