Nicolas Hachet
Architecte d'entreprise
CakePHP : récupérer les requêtes SQL exécutées lors du traitement d’une action
CakePHP stocke toutes les requêtes SQL exécutées lors de l’appel d’une action dans un tableau qui se nomme “_queriesLog”. Ce tableau est disponible sur n’importe quel modèle. Il est possible de renvoyer l’ensemble des requêtes SQL comme ceci :
Fichier app/app_model.php
1
2
3
4
5
6
public function geQueries ()
{
$dbo = $this->getDatasource();
return $dbo->_queriesLog;
}
La fonction getQueries() peut alors être appelée sur un modèle.
1
2
debug($this->Model->getQueries());
Par extension, vous pouvez seulement renvoyer la dernière requête SQL exécutée :
1
2
3
4
5
6
7
8
public function getQueries ()
{
$dbo = $this->getDatasource();
$logs = $dbo->_queriesLog;
return end($logs);
}