我正在尝试按名称构建一个 Symfony 表单(在 Silex 中)。使用下面的配置,我相信我应该可以调用$form = $app['form.factory']->createBuilder('address');
,但是 FormRegistry 找不到这种类型的表单。
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormTypeExtensionInterface;
class AddressType extends AbstractType implements FormTypeExtensionInterface
{
public function getName()
{
return 'address';
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('addressee', 'text');
// .. fields ..
$builder->add('country', 'text');
}
public function getExtendedType()
{
return 'form';
}
}
然后使用form.type.extensions
提供者将其添加到表单注册表中:
$app['form.type.extensions'] = $app->share($app->extend('form.type.extensions', function($extensions) use ($app) {
$extensions[] = new AddressType();
return $extensions;
}));
还有其他我需要做的事情或以这种方式构建表单的不同方式吗?