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