假设我有一个返回以下数据的查询:
RangeId | MinValue | MaxValue | Resolution | UnitId | UnitName
我想用上述数据水合对象MeasurementRange
。
class MeasurementRange {
public function getRangeId() {...};
public function setRangeId($id) {...};
public function getRange() {...};
public function setRange(Range $range) {...};
public function getUnit() {...};
public function setUnit(Unit $unit) {...};
}
class Range {
public function getMinValue() {...};
public function setMinValue(float $minVal) {...};
public function getMaxValue() {...};
public function setMaxValue(float $maxVal) {...};
public function getResolution {...};
public function setResolution(float $resolution) {...};
}
class Unit {
public function getUnitId() {...};
public function setUnitId(int $id) {...};
public function getUnitName() {...};
public function setUnitName(string $name) {...};
}
如您所见,MeasurementRange
对象已设置Range
和Unit
个对象。
如何从上述查询中保留MeasurementRange
以及内部Range
和Unit
对象?
PS:我没有指定对象的受保护属性。我猜他们是不言而喻的。
答案 0 :(得分:1)
您需要创建一个映射器,它将使用您的dbAdapter将数据作为数组获取,然后使用水合器来水合所有对象,最后将Range
和Unit
添加到{ {1}}。您也可以创建一个定制保湿器(就单一责任而言,这将更好)。
我没有时间清理下面的示例,但这就是它的样子:)
MeasurementRange