Nicolas Hachet Architecte d'entreprise

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

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 :

1
2
3
4
5
6
7
8
  
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’.

1
2
  
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
)
)
)