Visualizzare Sql da ActiveRecord


(Lcnlcn) #1

Ciao a tutti è possibile visualizzare l’ SQl di un activerecord ottenuto tramite funzioni all(), one(),…

per poter effettuare test?

grazie


(Fabrizio Caldarelli) #2

Certo. A partire da un’ActiveQuery (non ActiveRecord), es.




$query = Model::find()->where(....)->....;



Per avere il SQL:




$sql = $query->createCommand()->getRawSql();




(Bobonov) #3

So che il post è un pò vecchio ma magari è di aiuto anche ad altri




$sql = $query->createCommand()->getRawSql();



Devi farlo prima che la query venga eseguita, quindi ad esempio prima di mettere ->all();

Puoi controllare le query anche attraverso il debug panle.

In entrambi i casi le query contengono il binding dei parametri e quindi non vedrai eventuali valori usati in bind dalla where ad esempio.

Se invece ti riferisci alla query eseguita duarnte il ->save() dell’ActiveRecord, la puoi vedere solo tramite il panello di debug, qui i valori sono visibili.