symfonysymfony2-easyadmineasyadmin

add a virtual property in easy-admin bundle


I'm currently working with the 2.3 version of the easy-admin bundle in Symfony 4.

I try to create a virtual property for the new view. I have the following configuration

#config/packages/easy_admin.yaml
easy_admin:
    entities:
        Field:
            class: App\Entity\Field
            form: 
                fields: 
                    - { type: tab, label: initial information, icon: pencil-alt }
                    - name
            new:
                fields:
                    - { property: toto, type: file }

and my entity file:

//src/Entity/Field.php

/**
 * @ORM\Entity(repositoryClass="App\Repository\FieldRepository")
 */
class Field
{
    public function setToto(?File $file): self
    {
        $this->setImage(new Image);
        $this->getImage()->setImageFile($file);
    }

as explain in the documentation the setter should be sufficient.

but when I reach the new page I get the following error:

Neither the property "toto" nor one of the methods "getToto()", "toto()", "isToto()", "hasToto()", "__get()" exist and have public access in class "App\Entity\Field".

which means that the page is looking for getter and not setter. Is it normal or did I make something wrong ?


Solution

  • I have just ran into this issue and I have solved it by adding the getter. As you said, it is looking for getter but also setter.