我正在研究Symfony 2.7 WebApp,我想为其中一个使用自定义Form Widget。窗口小部件需要访问| | 33% | |
| | | 33% |
| 33% | | |
---------------------------
| 100% |
。只要在主窗体中使用Widget,这就可以正常工作。但是当在子表单中使用Widget时,form.vars.value
为空。
表格中使用的类:
form.vars.value
这些课程的自定义表单类型:
class AdressBookEntry {
// The main phone number of this contact: Type PhoneNumber
protected $mainPhoneNumber;
//...getter and setter for mainPhoneNumber
// An array of Addresses
protected $addresses;
//...getter and setter for addresses
...
}
class Address {
// The phone number of this address: Type PhoneNumber
protected $phoneNumber;
//...getter and setter for phoneNumber
...
}
class PhoneNumber {
...
}
PhoneNumberEdit的自定义Widget
// Custom FormType for AddressBookEntries
class AdressBookEntryType extends AbstractType {
...
public function buildForm(FormBuilderInterface $builder, array $options) {
// Type 'phone_number_edit' is registered in services.yml
$builder
->add('mainPhoneNumber', 'phone_number_edit', array(
'label' => '...',
...
))
->add('addresses', 'collection', array(
'label' => '...',
...
));
}
}
// Custom FormType for Address
class AddressType extends AbstractType {
...
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('mainPhoneNumber', 'phone_number_edit', array(
'label' => '...',
...
))
...;
}
}
主窗体的PhoneNumberEdit(代表{% block phone_number_edit_widget %}
...
{{ dump(form.vars.value) }}
...
)工作正常。 AddressBookEntry
语句显示已分配的dump
对象的内容。
然而,在PhoneNumber
集合的子表单中,addresses
变量为空。转储仅显示form.vars.value
。
那么,如何在子表单中访问""
?小部件如何识别它在主窗体或子窗体中的使用?
更新
评论中提到的一些其他信息:
@Jeet:如前所述,转储显示空值/字符串:form.vars.value
@DOZ:这是Twig代码:
""
答案 0 :(得分:1)
使用值而不是form.vars.value
{% block phone_number_edit_widget %}
...
{{ dump(value) }}
...