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

27 Jan 2012 0

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 :
[php] class AppModel extends Model {
public function getQueries ()
{
$dbo = $this -> getDatasource();
return $dbo -> getLog();
}
}
[/php]

Vous aurez alors la possibilité d’appeler la fonction getQueries() sur n’importe quel modèle. Ici, nous travaillons sur le modèle ‘Content’.
[php] debug($this -> Content -> getQueries()); exit;
[/php]

Ce qui provoque l’affichage suivant :
[text] 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
)
)
)
[/text]