Fijate en este snippet:

http://cakeforge.org/snippet/detail.php?type=snippet&id=112

Que alguien hizo una función que podés agregar a tu AppModel para obtener
los valores de un ENUM. Te la pasteo acá (eliminé los comentarios para mejor
lectura):

class AppModel extends Model
{
    function getEnumValues($columnName=null)
    {
        if ($columnName==null) { return array(); }

          $db =& ConnectionManager::getDataSource($this->useDbConfig);
        $tableName = $db->fullTableName($this, false);

        $result = $this->query("SHOW COLUMNS FROM {$tableName} LIKE
'{$columnName}'");

        $types = null;
        if ( isset( $result[0]['COLUMNS']['Type'] ) ) 
          { 
                $types = $result[0]['COLUMNS']['Type']; 
          }
        elseif ( isset( $result[0][0]['Type'] ) ) 
          { 
                $types = $result[0][0]['Type'];         
          }
        else   
          { 
                return array(); 
          }

        $values = explode("','", preg_replace("/(enum)\('(.+?)'\)/","\\2",
$types) );

        $assoc_values = array();
        foreach ( $values as $value ) {
            $assoc_values[$value] = Inflector::humanize($value);
        }

        return $assoc_values;

    }
}

Entonces para obtener estos valores desde tu controlador, suponiendo que el
campo en tu BD que tiene enums está en el modelo Modelo y se llama "campo":

$valores = $this->Modelo->getEnumValues('campo');

$this->set('valores', $valores);

Y luego en tu vista podés usar $valores para mandarselo al select del HTML
helper.

PS: Saludo para Lanas!

-MI

---------------------------------------------------------------------------

Remember, smart coders answer ten questions for every question they ask. 
So be smart, be cool, and share your knowledge. 

BAKE ON!

blog: http://www.MarianoIglesias.com.ar


-----Mensaje original-----
De: [email protected] [mailto:[EMAIL PROTECTED] En
nombre de roger
Enviado el: Viernes, 09 de Marzo de 2007 08:11 a.m.
Para: CakePHP-es
Asunto: Rellenar un Select con enum

Quisiera saber cómo hacer para relenar un Select con los valores de un
campo tipo enum.


--~--~---------~--~----~------------~-------~--~----~
Has recibido este mensaje porque estás suscrito a Grupo "CakePHP-es" de Grupos 
de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo 
electrónico a [email protected]
 Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups.google.com/group/CakePHP-es?hl=es.

-~----------~----~----~----~------~----~------~--~---

Responder a