2011-09-27 13 views
5

tengo el siguiente código, que recupera las babosas página de la base de datos que se necesitan para luego crear una sub-página relacionada:ErrorException: Catchable Fatal Error: Objeto de la clase no se pudo convertir a la cadena - Causado por el menú desplegable, pero ¿por qué?

 $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'); 
      } 
     )); 

El código funciona, ya que muestra un menú desplegable de todas las páginas de los padres hacia abajo Yo tengo. Sin embargo, cuando voy a guardar los datos en la base de datos, se me da el siguiente error:

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

He comprobado el contenido de la ficha de entidad contenido, y aquí se declara la variable:

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

Y más abajo en la ficha de entidad contenido:

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

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

el resto del código funciona, una vez que este menú desplegable se ha sacado. No estoy seguro de por qué el menú desplegable está causando este error?

Gracias

+0

¿Cuál es el valor de las opciones en el menú desplegable? ¿Está de acuerdo con el valor int en la tabla? – Tjorriemorrie

+0

Sí, usa el campo Int (ID) de la tabla. Estoy tratando de cambiar esto para que use un valor diferente. – mickburkejnr

+0

intente hacer 'subtocontentoptions' protegido en lugar de privado – Reuven

Respuesta

10

estaba teniendo el mismo problema con un proyecto SF2/Doctrine2, la realización del procedimiento __toString resuelto este problema para mí:

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

¿Sabes cuál es la causa de este error? –

+0

si la clave externa es nula, esto da un error. no estoy seguro de por qué. – Basit

Cuestiones relacionadas