我正在尝试按名称构建一个 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;
}));
我是否还需要做其他事情或以这种方式构建表单的不同方式?
最佳答案
为什么不直接使用
$app['form.factory']->createBuilder('Namespace\\Form\\Types\\Form')
关于php - 在 Silex 中使用 Symfony Form 2.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15975426/