CakePHP 2 : récupérer les requêtes exécutées dans un contrôleur ou un modèle

27 Jan 2012 0 No tags

En 2011, nous avions vu comment récupérer les requêtes exécutées sous CakePHP 1 lors du traitement d’une action. Aujourd’hui même combat mais sous Cake 2 !

Ainsi vous pouvez ajouter une fonction dans le fichier AppModel :

class AppModel extends Model {
public function getQueries ()
    {
        $dbo = $this -> getDatasource();
        return $dbo -> getLog();
    }
}

Vous aurez alors la possibilité d’appeler la fonction getQueries() sur n’importe quel modèle. Ici, nous travaillons sur le modèle ‘Content’.

debug($this -> Content -> getQueries()); exit;

Ce qui provoque l’affichage suivant :

Array
(
    [log] => Array
        (
            [0] => Array
                (
                    [query] => SELECT * FROM `contents` AS `Content` WHERE `Content`.`id` = 6 AND `Content`.`type` = 2  LIMIT 1
                    [affected] => 1
                    [numRows] => 1
                    [took] => 0
                )
     )
)