Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Problemas con bundle EasyAdmin

15 de febrero de 2016

Hola a todos, antes de nada deciros que soy nuevo con Symfony. Hasta la fecha siempre he trabajado con Laravel pero un nuevo proyecto que tendré que poner en marcha me ha decidido a explorar este framework, que según he podido ver se adapta mejor a grandes proyectos.

Bueno al grano, mi primer contacto ha sido poniendo en practica el tutorial del libro que teneis en esta misma web. Todo bien, pero al instalar el EasyAdminBundle, solo me lista los resultados. Al intentar crear un nuevo registro me lanza el siguiente error:

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

y al editar:

Catchable Fatal Error: Object of class Proxies\__CG__\PruebasBundle\Entity\Category could not be converted to string

Tengo que decir que el error solo da con entidades relacionadas, si no hay relación "OneToMany" o "ManyToOne", funciona perfectamente. Si alguien puede ayudarme se lo agradecería.


Respuestas

#1

Lo primero, bienvenido a Symfony :) Después de usar Laravel, el "choque inicial" puede ser grande, pero por suerte vienes de un framework que usa muchos componentes Symfony, así que te sonarán muchas cosas.

Respecto al error que comentas, tienes suerte porque es muy fácil de solucionar. El problema es que el bundle quiere mostrar la entidad relacionada en forma de texto (por ejemplo dentro de un <select>) y no sabe cómo hacerlo. Para solucionarlo, añade el método mágico __toString() en las entidades relacionadas y listo. Ejemplo:

class User
{
    // ...
 
    public function __toString()
    {
        return $this->username;
    }
}

Si no te hubiera sucedido este problema con EasyAdminBundle, te habría surgido con el propio Symfony o incluso en otros frameworks y aplicaciones. Por eso es una buena práctica recomendada añadir siempre el __toString() en todas las entidades de la aplicación.

@javiereguiluz

15 febrero 2016, 17:40
#2

Solucionado, muchas gracias por tu respuesta. Si es cierto que he padecido algo de "choque inicial", también lo padecí cuando migre de CodeIgniter a Laravel, pero valió la pena y de igual forma creo que ha llegado el momento de dar un salto. Aprovecho para felicitarte por compartir este bundle, de nuevo gracias y nos veremos por aquí.

@casasxavi

15 febrero 2016, 20:58