Cuando el nombre de la tabla en la base de datos difiere del nombre en el modelo de objetos, necesitamos obtener el “phpName”. Una forma de hacer esto, útil cuando solamente tenemos un nombre de tabla y un ID, es:

$tabla = Propel::getDatabaseMap()->getTable($miNombreDeTabla);
$phpName = $tabla->getPhpName() ? $tabla->getPhpName() : sfInflector::camelize($tabla->getName());
return call_user_func(array($phpName.'Peer', 'retrieveByPK'), $miID);

Por si a alguien le sirve.


One Comment on “Symfony: Instanciar un objeto a partir del nombre de tabla”

You can track this conversation through its atom feed.

  1. admin says:

    Parece ser que esto no es válido pues Propel::getDatabaseMap() sólo tiene las tablas que de alguna forma se han referenciado en la programación de la acción, es decir, que en la mayoría de los casos no tendremos la mayoría de las tablas de la base de datos.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>