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

7

Ich habe das neueste Drupal 8.1.1 installiert. Außerdem wurde das Entwicklungsmodul installiert. Es gibt keine Option zum Anzeigen des Abfrageprotokolls auf der Entwicklungseinstellungsseite, solange es auf dem D7-Entwicklungsmodul vorhanden ist. Ich habe eine Ansicht mit Beziehung erstellt. Jetzt möchte ich die SQL-Abfrage dieser Ansicht am Frontend anzeigen.

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

Sanjay
quelle

Antworten:

6

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

Geben Sie hier die Bildbeschreibung ein

Hoffe es wird dir helfen.

visabhishek
quelle
Vielen Dank für die schnelle Antwort, alle Optionen sind bereits aktiviert ("SQL-Abfrage anzeigen" und "Andere Abfragen anzeigen, die während des Renderns während der Live-Vorschau ausgeführt werden"). Dies ist nur für die Administrator-Vorschau. Ich möchte diese für den Endbenutzer (authentifizierten und anonymen Benutzer) ).
Sanjay
4

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());
}
Dalin
quelle
2

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

Todd Bloom
quelle
1

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

Vaibhav Jain
quelle
0
$query = $db->query('MY QUERY');
print_r($query); // In the result you'll see a key "queryString" containing the actual query
Stef Van Looveren
quelle
0

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']);
}
Florian Müller
quelle