在Symfony2 2.3.13
中具有表单,同时遍历元素,例如:
$children = $form->all();
foreach($children as $name => $child){
$child; // ->getLabel() ?
}
没有getLabel()
方法,也没有getType()
,我也需要。在做:
echo get_class($child);
我总是得到
Symfony'Component'Form'Form
有什么方法可以获得标签和类型吗?
我试着按照@Thomas Kelley的建议去做:
$children = $form->all();
foreach($children as $name => $child){
echo '<pre>';
var_dump($child->getType());
echo '</pre>';
}
以上代码的结果是:
Error: Call to undefined method Symfony'Component'Form'Form::getType()
$form->all()
返回FormInterface
的数组。
您可以通过getConfig()
方法访问该FormInterface
的配置,该方法返回FormConfigInterface
。从这里,您可以访问类型和标签:
$children = $form->all();
foreach ($children as $child) {
/** @var FormInterface $child */
/** @var FormConfigInterface $config */
$config = $child->getConfig();
/** @var ResolvedFormTypeInterface */
$type = $config->getType();
/** @var string $label */
$label = $config->getOption("label");
}
(注意getType()
返回一个ResolvedFormTypeInterface
)