Search code examples
symfonydoctrine-ormdoctrineeasyadmin

Problem with list array/collection in easyadmin symfony doctrine


I have problem with vieving the list. I need all of array not only counting.

CrudController:

public function configureFields(string $pageName): iterable
{
    return [
        IdField::new('id')->hideOnForm()->hideOnDetail(),
        TextField::new('firstName','Imię'),
        TextField::new('lastName','Nazwisko'),
        AssociationField::new('specialization','Specjalizacja'),
        AssociationField::new('visits','Wizyty')->onlyOnDetail(),

    ];
}

FirstEntity:

/**
 * @var Visit[]|ArrayCollection
 * @ORM\OneToMany(targetEntity="App\Entity\Visit", mappedBy="doctor")
 */
private $visits;

SecondEntity:

/**
     * @ORM\ManyToOne(targetEntity="App\Entity\Patient")
     * @var Patient
     */
    private $patient;

And the result:

counting instead of displaying an array


Solution

  • You are using AssociationField which works fine for a one to many relationship but only show count in a many to one relationship.

    Use ArrayField instead.

    See field types.

    public function configureFields(string $pageName): iterable
    {
        return [
            IdField::new('id')->hideOnForm()->hideOnDetail(),
            TextField::new('firstName','Imię'),
            TextField::new('lastName','Nazwisko'),
            AssociationField::new('specialization','Specjalizacja'),
            ArrayField::new('visits','Wizyty')->onlyOnDetail(),
    
        ];
    }