it-swarm.com.de

Wie drucke ich die SQL-Abfrage einer Ansicht im Frontend?

Ich habe das neueste installiert Drupal 8.1.1 auch das Entwicklungsmodul installiert. Es gibt keine Option für die Anzeige des Abfrageprotokolls auf der Entwicklungseinstellungsseite, solange es auf dem D7-Entwicklungsmodul vorhanden ist. Ich habe jetzt eine Ansicht mit Beziehung erstellt Ich möchte die SQL-Abfrage dieser Ansicht am Frontend anzeigen.

Wie drucke ich die SQL-Abfrage einer Ansicht im Frontend?

7
Sanjay

Das Entwicklungsmodul enthält das Webprofilermodul; Sie müssen dies aktivieren, um das Abfrageprotokoll anzuzeigen.

Beachten Sie, dass es gibt derzeit einen Fehler im Kern in 8.1, der die Verwendung verhindert.

4
Berdir

Sie können "SQL-Abfrage anzeigen" und "Andere beim Rendern während der Live-Vorschau ausgeführte Abfragen anzeigen" unter "www.example.com/admin/structure/views/settings" aktivieren.

(enter image description here

Hoffe es wird dir helfen.

6
visabhishek

Sie können zwar das Webprofiler-Modul installieren, aber wenn Sie bereits ein benutzerdefiniertes Modul haben, ist dies möglicherweise schneller:

/**
 * Implements hook_views_post_execute().
 */
function MY_MODULE_views_post_execute(ViewExecutable $view) {
  if ($view->id() != 'MY_SPECIAL_VIEW') {
    return;
  }
  dpq($view->query->query());
}
4
Dalin

Wenn Sie die Datenbankabstraktionsschicht verwenden, um Ihre eigenen Abfragen auszuführen, können Sie die addTag-Methode verwenden und auch 'debug' übergeben.

$ query-> addTag ('debug')

2
Todd Bloom

Sie können einfach dpq($query->query()); ausführen. Dadurch wird die Abfrage in den Nachrichtenbereich Ihres Frontends gestellt. Bearbeiten - Sie benötigen ein Entwicklungsmodul, um diese Funktion nutzen zu können.

1
Vaibhav Jain

Wenn jemand nach dem Drupal 7 Äquivalent von Dalins Antwort sucht, ist die Struktur nur ein wenig anders.

/**
 * Implements hook_views_post_execute().
 */
function MY_MODULE_views_post_execute($view) {
  if ($view->name != 'MY_SPECIAL_VIEW') {
    return;
  }
  dpq($view->build_info['query']);
}
0
Florian Müller
$query = $db->query('MY QUERY');
print_r($query); // In the result you'll see a key "queryString" containing the actual query
0