Pablasso

Usando funciones de MySQL en CakePHP

March 11, 2008

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");

Juan Pablo OrtizWritten by Juan Pablo Ortiz who lives and works in Guadalajara, Mexico. You should follow him on Twitter