sábado, 16 de abril de 2011

cómo buscar los registros que empiecen por un número

Hasta ahora no he encontrado ningún metodo directo en Cakephp,  asi que la mejor solucion es usar una funcion de my sql por ejemplo:


SUBSTRING(LOWER(Modelo.campo),1,1) BETWEEN '0' AND '9'

Ahora bien simplemente se pasa la cadena completa como un array entre comillas dobles como argumento de paginate. Esto es importante ya que no se pueden escapar las comillas sencillas ya que la cadena es pasada tal cual a la clausula WHERE de la consulta SQL.


                      $this->set('modelo',$this->paginate(array("SUBSTRING(LOWER(Tercero.razon_social),1,1) BETWEEN '0' AND '9'")));
 y Voila! Muy útil para usar cualquier función MySQL.
                     

El símbolo # no es un parámetro valido como argumento en Cakephp

Y de hecho en ninguna otro framework php o aplicación web ya que es el símbolo que hace referencia a la misma pagina o a algún marcador en la misma.

Así que: el código:

$this->Html->link('#', array('action'=>'index'));

Realmente no dispara la acción index del controlador sino que te lleva a inicio de la pagina, nada más.

martes, 12 de abril de 2011

No debo cambiar los nombre de un archivo bajo subversion

Bueno realmente los nombres si se pueden cambiar si son diferentes.

El problema radica en que si por ejemplo cambias un archivo, digamos: Opcion.php a opcion.php,
Subversion asumirá que se borro Opcion.php y se creo opcion.php, realmente no habria problema con esto a menos que este en Windows pues como el S.O. no es caso sensitivo asumira que se trata del mismo archivo y generara un error al tratar de hacer update o commit al proyecto.

Yo tuve que borrar alguna de las copias directamente en el repositorio y quitar el directorio que las contenía y hacer nuevamente check out.

sábado, 2 de abril de 2011

De las primeras cosas a revisar cunado fala un servicio en linux es el espacio en disco.

Ya varias veces me ha ocurrido que cuando servicios  como el squid, apache o mySQL fallan, se trata de poco espacio en disco que impide que se modifique o creen archivos temporales que se requieren para el funcionamiento.

Y aunque uno supondria que al tratar de ejecutar la aplicación esta debería avisar con algo como: "Error tal y tal, me quedé sin espacio en disco, Pilas! muchas veces simplemente sale un "Error".

Verificar lo es fácil en sistemas Linux. (y en Windows si que más).

# df -h

Donde df viene de disk-free y el -h viene de "human" es decir que los tamaños puedan ser leídos por humano, osea en Kb, Mb y Gb según el caso.