Voir la requête réelle d'un monObjet::model()->findAll($criteria);

Bonjour,

Tout est dans le titre.

Je voudrais voir la requête complète générée par un "find" paramètres compris.

J’ai déjà configuré mon “main.php” pour afficher les logs (


'class'=>'CWebLogRoute'

)

Salut !

Le fait d’activer CWebLogRoute ne t’affiche pas les requêtes ? Ca devrait pourtant être le cas. Je te conseille d’ailleurs l’intégration à Firebug qui est encore plus pratique via :


'showInFireBug'=>true

Je ne crois pas que ce soit possible d’afficher les valeurs à la place des paramètres dans la requète, par contre tu peux afficher la valeur des paramètres dans WebLogRoute, en l’activant depuis ton fichier de configuration:


'db'=>array(

				'connectionString' => 'mysql:host=localhost;dbname=madb',

				'enableParamLogging' => true,

				...

			),

Merci Clem c’est ce qu’il me faut !

Personnellement j’utilises http://www.yiiframework.com/extension/yiidebugtb/ avec la config suivante:




                'log'=>array(

                        'class'=>'CLogRouter',

                        'routes'=>array(

                                'xweb'=>array(

                                        'class'=>'XWebDebugRouter',

                                        'config'=>'alignLeft, opaque, runInDebug, fixedPos, yamlStyle, collapsed',

                                        'levels'=>'error, warning, trace, profile, info',

                                        'allowedIPs'=>array('127.0.0.1','::1','192.168.1.54','192\.168\.1[0-5]\.[0-9]{3}','80.214.1.[0-9]+','80.214.5.[0-9]+'),

                                ),

			),

		),




                'db'=>array(

                        'class'=>'CDbConnection',

                        'connectionString' => 'mysql:host=localhost;dbname=test_db',

                        'emulatePrepare' => true,

                        'username'=>'test_user', 'password'=>'testpwd',

                        'charset' => 'utf8',

                        'tablePrefix' => '',

                        'enableParamLogging' => 'true',

                        'schemaCachingDuration'=>3600,

                        'initSQLs'=>array("set time_zone='+00:00';"), // Make SQL server return DATETIME as UTC

                ),



Cela donne une petite interface dans le navigateur qui donne accès à beaucoup d’informations, y compris les requêtes SQL et les messages ‘trace’/‘log’.

Pour voir les paramètres SQL, il faut ajouter le ‘enableParamLogging’ dans la configuration de la connexion à la base de données comme déjà indiqué.

Je ne connaissais pas le


'initSQLs'=>array("set time_zone='+00:00';"), // Make SQL server return DATETIME as UTC



Merci je vais l’utiliser.

Pour le reste cette config me convient depuis des années.