web-dev-qa-db-ja.com

Symfony EasyAdmin 3.x MunchAtomany登録時にエラーが発生しました:Doctrine tys ....フィールドは "4"です。これはまだEasyAdminではサポートされていません

EasyAdmin 3.xで2つのクラスの間の単純なMunchtomanyの関係をやろうとしています。エンティティCrudを表示しようとしているとき、私は常にこのエラーを持っています:

"Salles"フィールドのDoctrineタイプは "4"です。これはEasyAdminではまだサポートされていません。

TH関数__toは、両方のエンティティに存在します

_public function __toString()
    {
        return $this->name;
    }
_

私のCrudController:

_namespace App\Controller\Admin;

use App\Entity\Batiment;
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractCrudController;


class BatimentCrudController extends AbstractCrudController
{
    public static function getEntityFqcn(): string
    {
        return Batiment::class;
    }


    public function configureFields(string $pageName): iterable
    {
        return [
            'name',
            'salles'

        ];
    }

}
_

EasyAdmin 3.xは、みんなの関係を管理しませんか?

これらの関係を管理して表示するための特定の方法はありますか?

私はこのバンドルを発見し、あなたの助けをありがとう!

3
jerome linher

これは私のバッテントエンティティクラスの定義です

    <?php

namespace App\Entity;

use App\Repository\BatimentRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass=BatimentRepository::class)
 */
class Batiment
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $name;

    /**
     * @ORM\Column(type="string", length=255, nullable=true)
     */
    private $Letter;

    /**
     * @ORM\Column(type="string", length=255, nullable=true)
     */
    private $image;

    /**
     * @ORM\OneToMany(targetEntity=Salle::class, mappedBy="batiment")
     */
    private $salles;

    public function __construct()
    {
        $this->salles = new ArrayCollection();
    }

    public function getId(): ?int
    {
        return $this->id;
    }

    public function getName(): ?string
    {
        return $this->name;
    }

    public function setName(string $name): self
    {
        $this->name = $name;

        return $this;
    }

    public function getLetter(): ?string
    {
        return $this->Letter;
    }

    public function setLetter(?string $Letter): self
    {
        $this->Letter = $Letter;

        return $this;
    }

    public function getImage(): ?string
    {
        return $this->image;
    }

    public function setImage(?string $image): self
    {
        $this->image = $image;

        return $this;
    }

    /**
     * @return Collection|Salle[]
     */
    public function getSalles(): Collection
    {
        return $this->salles;
    }

    public function addSalle(Salle $salle): self
    {
        if (!$this->salles->contains($salle)) {
            $this->salles[] = $salle;
            $salle->setBatiment($this);
        }

        return $this;
    }

    public function removeSalle(Salle $salle): self
    {
        if ($this->salles->contains($salle)) {
            $this->salles->removeElement($salle);
            // set the owning side to null (unless already changed)
            if ($salle->getBatiment() === $this) {
                $salle->setBatiment(null);
            }
        }

        return $this;
    }

    public function __toString()
    {
        return $this->name;
    }
}
 _
0
jerome linher