On 4/20/2010 6:46 AM, neoslink wrote:
> como puedo utilizar ese bendito metodo ya que intento manejarlo y no
> sucede nada alguien podria hacer un pequeño tutorial sobre este metodo
> en especial para trabajarlo con
>
> sfWidgetFormDoctrineChoice
>
> ya que de este widget no encuentro una documentacion que me explique
> como utilizar el widget con el metodo __toString()
>
> gracias muchachos y muchachas espero me puedan colaborar estare muy
> agradecido.
>
Okey te explico ;) El método __toString() es un método mágico que casi
siempre es usado para devolver la cadena asociada a un número como por
ejemplo es el caso de los ID. Supón el siguiente escenario:
tbl_usuario
===========
idus, usuario, nombre_apellidos, email
tbl_universidad
===============
idun, nombre_universidad, idus
Cuando generas tus clases del modelo, ya sea con Doctrine o Propel, y si
está bien escrito el fichero schema.yml (contiene las relaciones
pertinentes entre las tablas, en este caso tbl_universidad y
tbl_usuario) entonces se te generan métodos que desde la clase usuario y
haciendo JOINs te permiten obtener los campos de la tabla
tbl_universidad asociados a la tabla tbl_usuario por la relación
existente entre ambas tablas.
Cuando imprimes el resultado de cualquier consulta se te muestra algo
como esto:
idus usuario nombre_apellidos email idun
===================================================
1 pepe pepe sanchez
pe...@p.com 1
que es lo que tu no quieres que ocurra. ¿Cómo se resuelve? Usando el
método mágico __toString(). Para ello en la clase generada para la tabla
tbl_universidad escribes lo siguiente:
public __toString()
{
return $this->getNombreUniversidad();
}
El método getNombreUniversidad() se te genera de forma automática en tu
fichero base (las mayúsculas han sido adicionadas por el comportamiento
CamelCase si tienes duda pues a por Google). Ese método lo que hace es
devolverte la cadena asociada a ese ID. Ahora si haces una consulta te
"debería" devolver lo siguiente:
idus usuario nombre_apellidos email nombre_universidad
================================================================
1 pepe pepe sanchez
pe...@p.com UCI
Espero te haya servido. Si continuas con dudas revisa bien los libros
(si mi memoria no falla esta en el Joobet) de Symfony que ahí se explica
bien el uso de dicho método.
--
Saludos
ReynierPM