Symfony 类型 "integer or null" 的预期参数



我有一个问题,我不知道如何修复它。我正在为网络上的类别做一个CRUD。

我们可以有2种类型的类别,categorieParent和每个Categorie具有一个categorieParent

我已经使用 make:form mae crud,但是当我提交表格时,出现以下错误:

类型"整数或null"类型的预期论点, 在属性路径上给出的" app entity epcorieparent" " epcorie_parent_id"。

这是我的实体:

epcorie

<?php
namespace AppEntity;
use DoctrineCommonCollectionsArrayCollection;
use DoctrineCommonCollectionsCollection;
use DoctrineORMMapping as ORM;
/**
 * @ORMEntity(repositoryClass="AppRepositoryCategorieRepository")
 */
class Categorie
{
    /**
     * @ORMId()
     * @ORMGeneratedValue()
     * @ORMColumn(type="integer")
     */
    private $id;
    /**
     * @ORMColumn(type="string", length=255)
     */
    private $categorie_intitule;
    /**
     * @ORMManyToOne(targetEntity="AppEntityCategorieParent", inversedBy="categorie_id")
     */
    private $categorie_parent_id;

    public function __construct()
    {
        $this->categorie_id = new ArrayCollection();
        $this->categorie_id_1 = new ArrayCollection();
    }
    public function getId(): ?int
    {
        return $this->id;
    }
    public function getCategorieIntitule(): ?string
    {
        return $this->categorie_intitule;
    }
    public function setCategorieIntitule(string $categorie_intitule): self
    {
        $this->categorie_intitule = $categorie_intitule;
        return $this;
    }
    /**
     * @return Collection|Produit[]
     */
    public function getCategorieId1(): Collection
    {
        return $this->categorie_id_1;
    }
    public function addCategorieId1(Produit $categorieId1): self
    {
        if (!$this->categorie_id_1->contains($categorieId1)) {
            $this->categorie_id_1[] = $categorieId1;
            $categorieId1->setCategorieId1($this);
        }
        return $this;
    }
    public function removeCategorieId1(Produit $categorieId1): self
    {
        if ($this->categorie_id_1->contains($categorieId1)) {
            $this->categorie_id_1->removeElement($categorieId1);
            // set the owning side to null (unless already changed)
            if ($categorieId1->getCategorieId1() === $this) {
                $categorieId1->setCategorieId1(null);
            }
        }
        return $this;
    }
    public function getCategorieParentId(): ?int
    {
        return $this->categorie_parent_id;
    }
    public function setCategorieParentId(?int $categorie_parent_id): self
    {
        $this->categorie_parent_id = $categorie_parent_id;
        return $this;
    }
    public function addCategorieParentId(self $categorieParentId): self
    {
        if (!$this->categorie_parent_id->contains($categorieParentId)) {
            $this->categorie_parent_id[] = $categorieParentId;
        }
        return $this;
    }
    public function removeCategorieParentId(self $categorieParentId): self
    {
        if ($this->categorie_parent_id->contains($categorieParentId)) {
            $this->categorie_parent_id->removeElement($categorieParentId);
        }
        return $this;
    }

}

** cancorieparent **

<?php
namespace AppEntity;
use DoctrineCommonCollectionsArrayCollection;
use DoctrineCommonCollectionsCollection;
use DoctrineORMMapping as ORM;
/**
 * @ORMEntity(repositoryClass="AppRepositoryCategorieParentRepository")
 */
class CategorieParent
{
    /**
     * @ORMId()
     * @ORMGeneratedValue()
     * @ORMColumn(type="integer")
     */
    private $id;
    /**
     * @ORMColumn(type="string", length=255)
     */
    private $categorie_intitule;
    /**
     * @ORMOneToMany(targetEntity="AppEntityCategorie", mappedBy="categorie_parent_id")
     */
    private $categorie_id;
    public function __construct()
    {
        $this->categorie_id = new ArrayCollection();
    }
    public function getId(): ?int
    {
        return $this->id;
    }
    public function getCategorieIntitule(): ?string
    {
        return $this->categorie_intitule;
    }
    public function setCategorieIntitule(string $categorie_intitule): self
    {
        $this->categorie_intitule = $categorie_intitule;
        return $this;
    }
    /**
     * @return Collection|Categorie[]
     */
    public function getCategorieId(): Collection
    {
        return $this->categorie_id;
    }
    public function addCategorieId(Categorie $categorieId): self
    {
        if (!$this->categorie_id->contains($categorieId)) {
            $this->categorie_id[] = $categorieId;
            $categorieId->setCategorieParentId($this);
        }
        return $this;
    }
    public function removeCategorieId(Categorie $categorieId): self
    {
        if ($this->categorie_id->contains($categorieId)) {
            $this->categorie_id->removeElement($categorieId);
            // set the owning side to null (unless already changed)
            if ($categorieId->getCategorieParentId() === $this) {
                $categorieId->setCategorieParentId(null);
            }
        }
        return $this;
    }
    public function __toString()
    {
        return $this->categorie_intitule;
    }
}

你能解释一下我出了什么问题吗?非常感谢。

查看此部分:

/**
 * @ORMManyToOne(targetEntity="AppEntityCategorieParent", inversedBy="categorie_id")
 */
private $categorie_parent_id;

当您的属性名称为 categorie_parent_id时,它不会返回ID。学说将该字段水合成一个对象。它将改为返回CategorieParent对象(或null(。考虑删除此属性名称的_id部分,因为它不容易容纳整数,而是一个对象。

更新您的方法:

public function getCategorieParentId(): ?CategorieParent
{
    return $this->categorie_parent_id;
}
public function setCategorieParentId(?CategorieParent $categorie_parent_id): self
{
    $this->categorie_parent_id = $categorie_parent_id;
    return $this;
}

最新更新