Symfony 4:为与多个实体有关系的实体创建表单

时间:2018-12-14 00:44:17

标签: forms entity symfony4

我正在尝试创建一个网站,允许用户自定义建造汽车。用户启动时,将创建汽车模型的新实例。在汽车模型中,用户可以添加不同的零件并为其定义自定义颜色。零件的名称将被加载到存储所有名称的表中。因此它看起来像“皮带->棕色”,“左门->红色”。

现在,我已完成创建实体和关系。它们是CarModel,ModelPart和PartName实体:

CarModel实体

class CarModel
{
    private $id;

    /**
    * @ORM\ManyToMany(targetEntity="ModelPart", inversedBy="carModels") 
    */
    private $modelParts;
}

ModelPart实体

class ModelPart
{
    private $id;

    /**
     * @ORM\ManyToMany(targetEntity="CarModel", mappedBy="modelParts")
    */
    private $carModels;

    /**
     * @ORM\OneToOne(targetEntity="PartName")
    */
    private $partName;

    // @var string
    private $color;
}

PartName实体

class PartName
{
    private $id;

    private $name;

    private $modelPart
}

但是我不知道从表单中输入它们。

CarModelType表单

class CarModelType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('part_name', EntityType::class, [
                 'class' => partName::class,
                 'choice_label' => 'name'
           ])
            ->add('color', TextType::class)            
        ;
    }

我收到错误消息:

  

属性“ part_name”或方法“ getPartName()”,“ partName()”,“ isPartName()”,“ hasPartName()”,“ __ get()”都不存在,并且在类中没有公共访问权限“ App \ Entity \ CarModel”。

0 个答案:

没有答案