我有一个非常简单的问题。目前,在getRepository
方法之后,我使用Doctrine2的findAll()
方法,并且我有一个简单的OneToOne
关系设置(Manufacturers
有一个链接到Addresses
的字段address_id
,基本内容)。我试图用Manufacturer
中的一个字段填充一个表,其余字段用关联的Address
中的数据填充。
我在我的视图中这样做代码:
<?php foreach($instances as $instance) { ?>
<?php $address = $instance->address; ?>
<tr>
<td><?php echo $instance->name; ?></td>
<td><?php echo $address->street; ?></td>
<td><?php echo $address->city; ?></td>
<td><?php echo $address->state; ?></td>
<td><?php echo $address->zip; ?></td>
</tr>
<?php } ?>
其中CCD_ 9是CCD_。每个属性都是公共的,但由于某种原因,Doctrine2不会在调用findAll()
Manufacturers
的同时提取关联的Address
数据。我做错了什么?
这就是我用来获取数据的东西:
$instances = $this->doctrine->em->getRepository('Entities'Manufacturer')->findAll();
我是否需要以某种方式向条令指定我也想获取相关数据?
默认情况下,所有条令关联都是惰性加载。原则是使用代理对象使相关数据的延迟加载成为可能。对于每个字段,在代理类中创建getter。您只需要调用getter,而不需要直接访问公共属性。建议在实体中声明所有字段为私有字段,并为它们定义getter和setter。