php - 表单类型映射错误 symfony2

标签 php forms symfony

我在使用映射 = false 的表单类型时遇到问题。

在 Controller 中,我使用以下方式调用表单:

$form = $this->createForm(new JurisdictionUserNewType(), $jurisdiction_user);

这是我的 JurisdictionUserNewType:
class JurisdictionUserNewType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $transformer = new CapitalLetterToLowerCaseTransformer();

        $builder
            ->add('name', 'text')
            ->add($builder->create('email', 'email')
                           ->addModelTransformer($transformer))
            ->add('securityUser', new SecurityUserType(), array('mapped' => false))

            ->add('save', 'submit');

    }

    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
           'data_class' => 'Radmas\Open010Bundle\Document\JurisdictionUser'
        ));
    }

    public function getName()
    {
        return 'jurisdictionUserNew';
    }
} 

这是我的 SecurityUserType :
class SecurityUserType extends AbstractType
{

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('first_name', null, ['label' => 'profile.edit.labels.first_name', 'icon_class' => 'fa fa-user'])
            ->add('last_name', null, ['label' => 'profile.edit.labels.last_name', 'icon_class' => 'fa fa-user'])
            ->add('nickname', null, ['label' => 'profile.edit.labels.nickname',
                'attr' => [ 'help_text' => 'profile.edit.labels.nickname_help'], 'icon_class' => 'fa fa-globe']);
    }

    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
           'data_class' => 'Radmas\SecurityBundle\Document\SecurityUser'
        ));
    }

    public function getName()
    {
        return 'securityUser';
    }
}

当我将数据放入表单时,我在模态视图中获得了对象权限用户,但我没有获得对象安全用户。

最佳答案

如果设置 'mapped' => false在任何字段上,您都说该字段与您的实体无关,因此当您从提交的表单中检索实体时,您不会得到它。

无论如何,您都可以从表单中将其作为单个字段获取,如下所示:

$form->handleRequest($request); 
if ($form->isValid()) { 
    $entity = $form->getData(); 
    $securityUser = $form->get('securityUser')->getData();    
}

关于php - 表单类型映射错误 symfony2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29793608/

相关文章:

css - 在表单中动态添加新字段时无法固定表单字段位置

javascript - 提交搜索不会将我发送到 javascript 变量中指定的页面

php 查询 - 按日期过滤

javascript - 在基于 PHP 的网站上呈现 Cookie

php - 如何在 WordPress MySQL 查询中按元键值排序?

javascript - 如何将头文件中的 div 固定在另一个文件的固定 div 之上?

html - 如何设置表单格式以便它们垂直对齐?

php - Symfony2 : Functional testing is failing during Fixtures load

mysql - Doctrine : Which syntax for GROUP_CONCAT with a CASE WHEN?

php - PayPal-Response 不成功 : Express Checkout PayerID is missing - Symfony 2. 5 JMSPaymentPayPalbundle 和 JMSPaymentCoreBundle