Usando funciones de MySQL en CakePHP
Algo que me atrasó en la madrugada era que CakePHP escapa todas las condicionales que le mandas en una consulta SQL, y si la condicional de casualidad esta formada con una función de MySQL, esta obviamente no se ejecuta.
Por ejemplo, esto que busca que el campo created
sea más reciente que hace 1 día, no funcionaría:
$conditions = array
(
"created" => "> date_sub( curdate(), interval 1 day)"
);
$this->Model->findAll( $conditions, null, "depart_date ASC");
Para evitar esto CakePHP implementa un operador mágico -!
que le indica no escapar esa sentencia y nuestra consulta se ejecute como pretendemos.
$conditions = array
(
"created" => "> -!date_sub( curdate(), interval 1 day)"
);
$this->Model->findAll( $conditions, null, "depart_date ASC");