2011-09-27 10 views
5

ho il seguente codice, che recupera le lumache pagina dal database che sono necessari per poi creare una relativa sottopagina:ErrorException: Catchable Fatal Error: L'oggetto della classe non può essere convertito in stringa - Causato dal menu a discesa, ma perché?

 $builder->add('subtocontentoptions', 'entity', array(
      'class' => 'ShoutAdminBundle:Content', 
      'property' => 'slug', 
      'query_builder' => function($repository) { 
       return $repository->createQueryBuilder('p') 
       ->where('p.mainpage = :main') 
       ->setParameter('main', '1') 
       ->orderBy('p.created', 'ASC'); 
      } 
     )); 

Il codice funziona, come viene visualizzato un menu a discesa di tutte le pagine genitore verso il basso Io ho. Tuttavia, quando vado a salvare i dati nel database, mi è riconosciuto il seguente errore:

ErrorException: Catchable Fatal Error: Object of class Shout\AdminBundle\Entity\Content could not be converted to string in C:\wamp\www\vendor\doctrine-dbal\lib\Doctrine\DBAL\Statement.php line 131

Ho controllato il contenuto del file di entità contenuti, e qui viene dichiarata la variabile:

/** 
* @var integer $subtocontentoptions 
* 
* @ORM\Column(name="SubToContentOptions", type="integer", nullable=false) 
*/ 
private $subtocontentoptions; 

E più in basso il file dell'entità contenuto:

/** 
* Set subtocontentoptions 
* 
* @param integer $subtocontentoptions 
*/ 
public function setSubtocontentoptions($subtocontentoptions) 
{ 
    $this->subtocontentoptions = $subtocontentoptions; 
} 

/** 
* Get subtocontentoptions 
* 
* @return integer 
*/ 
public function getSubtocontentoptions() 
{ 
    return $this->subtocontentoptions; 
} 

il resto del codice funziona, una volta che questa discesa è stato preso fuori. Non sono sicuro del motivo per cui il drop down sta causando questo errore?

Grazie

+0

Qual è il valore delle opzioni nel menu a discesa? È in base al valore int della tabella? – Tjorriemorrie

+0

Sì, utilizza il campo Int (ID) della tabella. Sto cercando di cambiare questo in modo che usi un valore diverso. – mickburkejnr

+0

prova a creare 'subtocontentoptions' protected invece di private – Reuven

risposta

10

stava avendo lo stesso problema con un progetto SF2/Doctrine2, attuazione del metodo __toString risolto questo problema per me:

public function __toString() 
{ 
    return strval($this->id); 
} 
+0

Sai qual è la causa di questo errore, forse? –

+0

se la chiave esterna è nullo, questo dà errore. non so perché. – Basit

Problemi correlati