J'ai installé la dernière Drupal 8.1.1 également module Devel installé il n'y a aucune option pour Afficher le journal des requêtes sur la page de configuration de développement alors qu'il est présent sur le module D7 Devel. J'ai créé une vue avec relation maintenant Je veux afficher la requête SQL de cette vue à l'avant.
Comment imprimer la requête SQL d'une vue frontale?
Le module Devel comprend le module webprofiler; vous devez l'activer pour voir le journal des requêtes.
Notez que il y a actuellement un bogue dans le noya dans 8.1 qui l'empêche d'être utilisé.
Bien que vous puissiez installer le module webprofiler, si vous avez déjà un module personnalisé, il peut être plus rapide de le faire:
/**
* Implements hook_views_post_execute().
*/
function MY_MODULE_views_post_execute(ViewExecutable $view) {
if ($view->id() != 'MY_SPECIAL_VIEW') {
return;
}
dpq($view->query->query());
}
Si vous utilisez la couche d'abstraction de base de données pour exécuter vos propres requêtes, vous pouvez également utiliser la méthode addTag et transmettre le "débogage".
$ query-> addTag ('debug')
Vous pouvez simplement faire dpq($query->query());
Cela mettra la requête dans la zone de message de votre frontend. Modifier - Vous aurez besoin d'un module de développement pour utiliser cette fonction.
Si quelqu'un cherche l'équivalent Drupal 7 de la réponse de Dalin, la structure est juste un peu différente.
/**
* Implements hook_views_post_execute().
*/
function MY_MODULE_views_post_execute($view) {
if ($view->name != 'MY_SPECIAL_VIEW') {
return;
}
dpq($view->build_info['query']);
}
$query = $db->query('MY QUERY');
print_r($query); // In the result you'll see a key "queryString" containing the actual query