Symfony ArrayCollection

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Symfony ArrayCollection相关的知识,希望对你有一定的参考价值。

我有2个实体。CategoryArticle 具有以下关系:

  • 每个 Article Category.
  • 每个 Category 可能有 许多 Article.

问题是 :

我想用这个表格添加新的类别。

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('name', TextType::class)
        ->add('submit', SubmitType::class, [
            'label' => 'Add a new category'
        ])
    ;
}

public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults([
        'data_class' => Category::class,
    ]);
}

下面是我输入一个错误的信息。绳子 字段名中的值。

Name Error This value should be of type array|IteratorAggregate.

我从来没有用过 ArrayCollection 的关系,但我试着改变了symfony中的 TextType::classCollectionType::class 它给我一个白色的方块,我不能打任何东西。

在一个更通用的问题: 我怎样才能在表单中验证值而不出现错误。This value should be of type array|IteratorAggregate.

Category

/**
 * @ORMId()
 * @ORMGeneratedValue()
 * @ORMColumn(type="integer")
 */
private $id;

/**
 * @ORMColumn(type="string", length=255)
 * @AssertUnique(message="Cette catégorie existe déjà")
 */
private $name;

/**
 * @return mixed
 */
public function getId()
{
    return $this->id;
}

/**
 * @return mixed
 */
public function getName()
{
    return $this->name;
}

/**
 * @param $name
 * @return Collection|null
 */
public function setName($name): ?Collection
{
    return $this->name = $name;
}

文章

/**
 * @ORMId()
 * @ORMGeneratedValue()
 * @ORMColumn(type="integer")
 */
private $id;

/**
 * @ORMColumn(type="text")
 */
private $title;

/**
 * @ORMColumn(type="text")
 */
private $content;

/**
 * @ORMColumn(type="datetime")
 */
private $createdAt;

/**
 * @ORMColumn(type="string", nullable=true)
 */
private $image;

/**
 * @ORMColumn(type="datetime", nullable=true)
 */
private $editedAt;

/**
 * @ORMManyToOne(targetEntity="AppEntityCategory")
 */
private $category;

以上是关于Symfony ArrayCollection的主要内容,如果未能解决你的问题,请参考以下文章

Symfony ArrayCollection

Symfony ArrayCollection 与 PersistentCollection

在 Symfony 中通过 ajax 为 ArrayCollection 数据传递 POST json 对象

Symfony 2,未定义的变量,在构造函数中初始化为 ArrayCollection 的受保护成员通过错误,它是未定义的

Symfony 3,ArrayCollection的remove()导致错误“警告:isset中的非法偏移类型或为空”

为啥 symfony 学说 findall() 返回 id NULL