如何从实体中检索依赖/父对象。从域实体方法中检索依赖/父对象
$person->getAddress();
这应该从数据库中检索该人的地址对象并将其作为对象返回。这是做这件事的好方法,如果这样做可以,代码应该如何。
这样做意味着对象本身应该知道地址是它所关联的实体/值对象。 为什么我想要这种语法是因为它在表示层看起来干净。
Person类是这样的:
class Person {
protected $_domain = null; // domain is assigned when instantiated
protected $_data = array('name', 'address');
protected $_relations = array(
'address'=>array(
'class'=>'Address'
)
);
protected $_retrievedRelations = array();
public function getAddress() {
if (array_key_exists('address', $this->_relations)) {
if (!array_key_exists('address', $this->_retrievedRelations)) {
$this->_retrievedRelations['address'] = $this->_domain->getAddress($this->_data['address']);
}
return $this->_retrievedRelations['address'];
}
return $this->_data['address'];
}
}
因此,它是确定使用$域对象的方法的getAddress内,并保持相关信息的Person类?
请回答,因为我一直在寻找答案。
我想你应该仔细看看伊万的答案。 Zend_Db_Table的关系部分完全是你在做什么。通过与其他类(每个文档)建立关系,你可以调用(假设你的参考规则被命名为“Address”)'$ person-> findAddress()',并且它将把与定义规则相关的关键字发送到地址域' find'方法并返回一个有效的行集。这听起来像你正在寻找什么,特别是如果你已经习惯于使用Zend_Db_Table。 – 2009-12-31 00:06:56
是的,但它有急切的加载?另外我需要创建一个Table类,然后是一个Row类来存储业务逻辑。 – andho 2010-01-05 03:11:28