Bonjour,
J'ai un problème que je n'arrive pas à résoudre.
Pour faire court, j'ai un produit que je souhaite afficher. Quand j'affiche ce produit j'affiche un formulaire que j'appelle par PanierType.php.
Sur ce formulaire j'ai besoin de récupérer les tailles de ce produit dans la table SizeProduct.
Pour cela je fais appelle à un repository. Dans mon repository j'ai la fonction suivante
public function findByProduct($product_id)
{
$qb= $this->createQueryBuilder('s')
->where('s.product= :product_id')
->setParameter('product_id', $product_id);
return $qb;
}
La variable $product_id est récupéré dans mon form type
private $product_id;
public function __construct($product_id=null) {
$this->product_id = $product_id;
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$product_id = $this->product_id;
$builder
->add('size', EntityType::class, array(
'label' => 'Taille',
'class' => 'AppBundle:SizeProduct',
'expanded'=>false,
'choice_label'=>'size',
'query_builder' => function(EntityRepository $repo) use($product_id) {
return $repo->findByProduct($product_id);
}
))
}
Sauf que mon repository ne reconnait pas la variable
Quand je fais un dump de ce qu'il me retourne, il met la variable $product_id à null.
De plus quand je force la valeur de mon $product_id dans mon repository j'ai le message d'erreur suivant:
Catchable Fatal Error: Object of class Proxies__CG__\AppBundle\Entity\Size could not be converted to string
Est-ce que cela vient du faite que mon entité SizeProduct récupère ses sizes avec les id de la table size?