【问题标题】:Multiple entity in one form一种形式的多个实体
【发布时间】:2016-03-08 11:05:01
【问题描述】:

我有以下问题。我想创建一个适用于两个实体的表单。我有以下实体:第一个实体是用户实体,它与第二个实体相关联(bip 列与实体“BIP”相关)。 现在我有以下代码:

BIPType.php:

    public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->add('name');
}

public function getDefaultOptions(array $options)
{
    return array(
        'data_class' => 'AppBundle\Entity\Bip',
    );
}

还有UserType.php:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $biptype = new BIPType();
    $builder->add('bip', $biptype);
}

public function getParent()
{
    return 'FOS\UserBundle\Form\Type\RegistrationFormType';
    // Or for Symfony < 2.8
    // return 'fos_user_registration';
}

public function getBlockPrefix()
{
    return 'app_user_registration';
}

// For Symfony 2.x
public function getName()
{
    return $this->getBlockPrefix();
}

很遗憾,发生了错误

可捕获的致命错误:传递给 UserBundle\Entity\User::setBip() 的参数 1 必须是 AppBundle\Entity\Bip 的实例,给定数组,在 /home/spake/php/gryf/vendor/symfony/ 中调用symfony/src/Symfony/Component/PropertyAccess/PropertyAccessor.php 在第 556 行并定义

朋友们,怎么办?感谢您的建议。

【问题讨论】:

    标签: php symfony doctrine-orm


    【解决方案1】:

    您需要像这样声明该表单类的实体类:

    $builder->add('bip', new BipType(), array(
        'data_class' => 'namespace/to/BipEntity'
    ));
    

    【讨论】:

      猜你喜欢
      • 2014-09-24
      • 1970-01-01
      • 2018-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      • 1970-01-01
      相关资源
      最近更新 更多