Supongamos que se debe tener 'datos conocidos' de una tabla, algo así como en una tabla llamada 'sexo' y los campos son 'Masculino' y 'Femenino', pero todavía no tenemos la tabla. Se puede implementar 'mientras tanto' un campo de tipo enum[1] con esos datos.
Ahora, supongamos que tenemos dos o mas tablas y queremos traer datos de ellas para luego mostrarlos en una lista desplegable, entonces podemos hacer lo siguiente:
En el controlador se define una función llamada addEnums que toma como parámetros el nombre del campo de la tabla y el modelo que se va a usar:
public function addEnums($name, $modelo){
$this->loadModel($modelo);
$type = $this->$modelo->getColumnType($name);
preg_match_all("/'(.*?)'/", $type, $enums);
foreach ($enums[1] as $n){
$data[$n]=$n;
}
$this->set($name, $data);
}
Luego, en el mismo controlador, se llama de la siguiente forma (tengo dos tablas, Users y Players. Users tiene un campo que se llama 'sex' y Player un campo que se llama 'position'):
$this->addEnums('sex','User');
$this->addEnums('position', 'Player');
Y luego, en la vista, se muestran de la siguiente forma:
echo $this->Form->input('sex', array('options'=>$sex));
echo $this->Form->input('position', array('options'=>$position));
Y listo!
[1] http://dev.mysql.com/doc/refman/5.0/en/enum.html
Sitio para difundir y compartir nuestras experiencias en linux, tecnología, ciencia y en general.
Buscar aquí
Mostrando entradas con la etiqueta cake. Mostrar todas las entradas
Mostrando entradas con la etiqueta cake. Mostrar todas las entradas
martes, 11 de noviembre de 2014
Imprimir datos de tipo enum en una lista desplegable en cakephp
viernes, 31 de octubre de 2014
Agregar tipos de archivo a Bluefish
Uno de los editores por defecto que tiene ubuntu es bluefish. Cuenta con resaltado de sintaxis y reconoce muchos lenguajes, pero no los tiene todos, por ejemplo la extensión ctp, que es la que usa CakePHP[1] para mostrar las vistas. Entonces, éste tipo de archivo se ve en blanco y negro. Horrible.
Otra de las cosas que tiene bluefish es que no se puede añadir otro tipo de archivo desde la interfaz gráfica, por lo que aquí está una solución a ese problema.
Lo hacemos con ctp, que es igual a php, pero para cake.
Se copia el archivo donde se especifica cómo se comportará el editor para un lenguaje (php) con el nombre que queremos que aparezca (ctp)
sudo cp /usr/share/bluefish/bflang/php.bflang2 /usr/share/bluefish/bflang/ctp.bflang2
Luego se edita ese archivo
sudo gedit /usr/share/bluefish/bflang/ctp.bflang2
Y reemplazamos con coincidencias de capitalización las palabras PHP por CTP y php por ctp
Y listo!
Al iniciar bluefish coloreará nuestro ctp
[1]http://cakephp.org/
Otra de las cosas que tiene bluefish es que no se puede añadir otro tipo de archivo desde la interfaz gráfica, por lo que aquí está una solución a ese problema.
Lo hacemos con ctp, que es igual a php, pero para cake.
Se copia el archivo donde se especifica cómo se comportará el editor para un lenguaje (php) con el nombre que queremos que aparezca (ctp)
sudo cp /usr/share/bluefish/bflang/php.bflang2 /usr/share/bluefish/bflang/ctp.bflang2
Luego se edita ese archivo
sudo gedit /usr/share/bluefish/bflang/ctp.bflang2
Y reemplazamos con coincidencias de capitalización las palabras PHP por CTP y php por ctp
Y listo!
Al iniciar bluefish coloreará nuestro ctp
[1]http://cakephp.org/
Suscribirse a:
Entradas (Atom)