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;
}));
この方法でフォームを作成するために他に何かする必要があるか、または別の方法がありますか?