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