2016-07-29 2 views
0

Je reçois l'erreur suivante en mettant en œuvre les nombreux à plusieurs dans b/w 2 entités (produit & Offre):Comment convertir un tableau d'objets sous forme de chaîne dans symfony 3?

Catchable Fatal Error: Object of class FoodBundle\Entity\Product could not be converted to string

Où entité produit est en relation avec l'entité offre. Mon but ici était de proposer des offres à des produits dans une relation plusieurs-à-plusieurs.

Ce morceau de code le crée comme je devine de l'erreur.

class Offer 
{ 
    public function addProduct(\FoodBundle\Entity\Product $product) 
    { 
     $this->product[] = $product; 
     return $this; 
    } 
} 

S'il vous plaît aidez-moi à résoudre ce problème.

+0

Vous devez définir __toString() (http://php.net/ manual/fr/language.oop5.magic.php # object.tostring) – Ianis

+0

Comment voulez-vous que votre entité soit affichée sous forme de chaîne? –

+0

Merci à @Taha Paksu & autres pour l'aide à la modification des questions. C'est résolu par la réponse suivante. –

Répondre

0

Ce problème est courant lorsque vous avez créé le CRUD automatiquement.

Le problème est que vous devez choisir parmi <select> un produit sous forme d'offre et symfony ne peut pas tirer la sélection parce que la classe produit ne précise pas ce qui devrait être rendu champ.

Accédez à votre entité produit et ajouter la méthode __toString magique (fournir si vous le pouvez) et il devrait ressembler à:

class Product { 

    public function __toString(){ 
     // Or change the property that you want to show in the select. 
     return $this->name; 
    } 
}