Orm 如何从ZF2中子实体的字段集中调用单个表单元素

Orm 如何从ZF2中子实体的字段集中调用单个表单元素,orm,doctrine-orm,zend-framework2,Orm,Doctrine Orm,Zend Framework2,在视图脚本中,从字段集调用表单元素的语法如下: echo $this->formRow($form->get('member')->get('firstName')); 此脚本从字段集成员调用单个元素firstName。但是,如果fieldset元素引用关联fieldset实体的别名,则此脚本将调用子表中的所有元素。从子表中调用单个元素的语法是什么 换句话说,假设我们有一个members实体和一个members字段集,其中包括firstName和lastName等元素。我们还

在视图脚本中,从字段集调用表单元素的语法如下:

echo $this->formRow($form->get('member')->get('firstName'));
此脚本从字段集
成员
调用单个元素
firstName
。但是,如果fieldset元素引用关联fieldset实体的别名,则此脚本将调用子表中的所有元素。从子表中调用单个元素的语法是什么

换句话说,假设我们有一个
members
实体和一个
members
字段集,其中包括
firstName
lastName
等元素。我们还有一个
地址
实体和一个
地址
字段集,其中包括
地址
城市
zipcode
等元素。对于ORM关联,
成员
实体包括一个
地址信息
元素,该元素建立到
地址
实体的链接,
地址
实体包括一个
成员项
元素,该元素建立回
成员
实体的链接。在这种情况下,

echo $this->formRow($form->get('member')->get('firstName'));
在视图脚本中生成单个
firstName
表单元素,而

echo $this->formRow($form->get('member')->get(‘addressInfo’));
地址
城市
zipcode
生成表单元素

我假设,如果我们只想为
city
生成一个表单元素,那么脚本可能需要

echo $this->formRow($form->get('member')->get(‘addressInfo’)->get(‘city’));

但这两种方法都不管用


语法是什么?

将其分解,您需要以下内容

$member      = $form->get('member');
$addressInfo = $member->get('addressInfo');
$city        = $addressInfo->get('city');

echo $this->formRow($city);
把这些电话连在一起,你就会得到这样的结果

echo $this->formRow($form->get('member')->get('addressInfo')->get('city'));

由于
addressInfo
元素是一个集合,因此在识别“字段”之前必须识别集合中的哪一行。因此

$member           = $form->get('member');
$addressFieldsets = $member->get('addressInfo');
$addressInfo      = $addressFieldsets[0];
$city             = $addressInfo->get('city');

echo $this->formRow($city);

我原以为这会奏效,但它给出了一个Zend\Form\Exception\InvalidElementException错误:
在表单中找不到名为[city]的元素
$member           = $form->get('member');
$addressFieldsets = $member->get('addressInfo');
$addressInfo      = $addressFieldsets[0];
$city             = $addressInfo->get('city');

echo $this->formRow($city);