Problemas con find('list') y generateList deprecado en CakePHP 1.2
La verdad a la hora de crear un arreglo de opciones para una lista (select en HTML) tuve problemas ya que en la versión 1.2 de CakePHP la función generateList está deprecada.
Bueno la primera opción que ví fue la de utilizar la función find('list'), pero los resultados no fueron los más deseados. Buscando en los grupos de cake tratando de encontrar alguna sintaxis específica para esta función me encontré con otra solución, que aquí les dejo:
$foo = $this->Usuario->TipoUsuario->find('all');
$tipo_usuarios = Set::combine($foo, '{n}.TipoUsuario.id', '{n}.TipoUsuario.nombre');
//Si ese objeto tiene una relacion por ejemplo de $belongsTo con el modelo
//actual, por ejmplo Usuario con TipoUsuario podemos setear directamente
//la lista con la siguiente funcion
$this->set(compact(‘tipo_usuarios’));
Actualización
Con el aporte que hizo José Lorenzo Rodrígues en sus comentarios la otra opción con la función find('list') quedaria así:
$this->Usuario->TipoUsuario->displayField = 'nombre';
$tipo_usuarios = $this->Usuario->TipoUsuario->find('list');
//Si ese objeto tiene una relacion por ejemplo de $belongsTo con el modelo
//actual, por ejmplo Usuario con TipoUsuario podemos setear directamente
//la lista con la siguiente funcion
$this->set(compact('tipo_usuarios'));
Saludos ...

José Lorenzo Rodríguez (no verificado) on June 02nd 2008
Eso e innecesario si pones en tus modelos:var $displayField = 'nombre';o caulquiera sea el campo que deseas mostrar en tus selects... De esa manera lo invocas find('list') y listo!
Danilo Domínguez P. (no verificado) on June 02nd 2008
José: gracias por el aporte nuevamente. De verdad colaborativamente se aprende mucho más rápido.Saludos ...
Enviar un comentario nuevo