php - 在 Silex 中使用 Symfony Form 2.3

标签 php symfony-forms silex

我正在尝试按名称构建一个 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/

相关文章:

php - 在没有访问 token 的情况下从 Facebook 粉丝页面获取前 4 个帖子

php - 在 Silex 中获取所有已安装的 Controller 集合/提供程序

exception - Silex:特定异常类型的错误处理程序

php - 如何使用 fpdf 导出变量数据

php - 我想知道如何在我的 Controller (laravel)中不使用 faker 技术的情况下在我的数据库 Mysql5.7 中获取一些字段

php - Drupal 7 token 替换

php - Symfony4 Forms - 带有两个 choice_label 的 EntityType

symfony1 - Symfony 1.4 表单模板

php - Symfony 错误 - EntityManager#persist() 期望参数 1 是一个实体对象,数组给定

php - 如何在 Silex-WebProfiler 中集成 Monolog?