PHP - Smarty y Objetos

 
Vista:

Smarty y Objetos

Publicado por Gabriel (2 intervenciones) el 06/02/2007 20:53:16
Buenas muchachos/as.
Estoy implementando Smarty con PHP, y tengo el siguiente problema:
Tengo un modelo de clases donde tengo un objeto Usuario, que entiende como métodos nombre(), apellido(), ..., y tiene asociado un objeto Rol, que se obtiene como $usuario->rol(). El rol entiende los metodos nombre(), id(), permisos(), ...
Bien, sin aplicar Smarty, o sea en un script PHP esto funciona de maravilla. Pero a la hora de asignar un objeto a un template me salta este error:

" Fatal error: Smarty error: [in default/usuarios.tpl line 21]: syntax error: unrecognized tag: $usuario->rol()->nombre() (Smarty_Compiler.class.php, line 439) in /var/www/hca/include/smarty/Smarty.class.php on line 1095 "

En el php que hace la llamada al tpl, hago el assign asi:

$usuarios = new Usuarios;
$user = $usuario->obtenerUsuario($id_usuario);
$smarty->assign('usuario',$user);

Y en el tpl, las muestro asi:

Bienvenido {$usuario->nombre()} | <a href="login.php">Salir</a> // ESTO ANDA
Rol: {$usuario->rol()->nombre()}. //ESTO NO ANDA

Les repito que el modelo de datos esta bien, y que definitivamente el método rol() devuelve un objeto rol.
Será algo de Smarty? Alguien una sugerencia?

Gracias de antemano.
Saludos, Gabriel.-
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

RE:Smarty y Objetos

Publicado por Yamil Bracho (888 intervenciones) el 07/02/2007 15:05:01
Al parecer es problema de Smarty. Prueba creando una variable secundaria para el objeto Rol
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Smarty y Objetos

Publicado por Gabriel (2 intervenciones) el 07/02/2007 15:13:22
Si, gracias Yamil.
Ahora tengo un objeto Usuario, y un objeto Rol. Feo el código, puesto que estoy acostumbrado a trabajar con modelos de objetos, y no le doy la utilidad para la que lo cree.
Pero bien vale.
Probe con Template_IT de PEAR y anda al pelo. Pero ya tengo todos los tpl's prácticamente. Asi que no voy a cambiar.
Saludos, Gabriel.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar