Salut à tous,

Voilà j'ai une relation OneToOne Unidirectionnel entre deux entitiés : rubrique & image.

Cependant je souhaite un argument modulable pour l'entité inverse : Image (je veux un path différent) du coup j'ai créer un constructor et passe par la fonction : setDefaultOptions du formType associé pour passer la variable ainsi cela donne çà :

buildForm du formType de l'entité Rubrique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('nom')
        ->add('image', new ImageType('rubrique'), array('required' => true))
    ;
}

setDefaultOptions du formType de l'entité Image :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
use Echyzen\NewsBundle\Entity as Entity;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'empty_data' => new Entity\Image($this->someDependency),
        ));
    }

Et le constructeur de l'entité image :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
public function __construct($path = null) {
 
        if(empty($path)) $this->path = '';
        else {
 
        $this->path = $path;
 
        }
}
Alors bien sûr avant que je rajoute çà tout fonctionnait mais plus maintenant au moment de la soumission j'ai ce genre d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Index "file" cannot be read from object of type "Echyzen\NewsBundle\Entity\Image" because it doesn't implement \ArrayAccess
Il faut dire un truc les erreur remonter par symfony sont incompréhensible pour l'être humain moyen XD


Si quelqu'un a une piste ou a déjà été voulu faire un truc comme moi mais a trouver une autre solution pour rendre modulable une entité?

Merci d'avance de votre réponse