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);