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.-
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


0