Как преобразовать запрос представления Drupal в запрос MySQL?
На моем сайте есть несколько просмотров. Я настроил параметр для получения запроса представлений. Я хочу преобразовать этот запрос в запрос MySQL для запуска и получения результата напрямую.
Как я могу это сделать?
2 answers
Попробуйте Представления Показать запрос модуль
Этот модуль показывает реальный SQL-запрос в пользовательском интерфейсе Views во время предварительного просмотра в реальном времени.
"Реальный запрос" означает, что он переписан крючками query_alter. Например, добавляются проверки доступа к узлу, поэтому для этого требуется выбрать пользователя, от имени которого предполагается выполнить запрос. Таким образом, модуль добавляет поле "Идентификатор пользователя для отображения окончательного запроса" в форму предварительного просмотра представлений. Вы должны ввести числовой идентификатор пользователя в это поле, чтобы просмотреть реальный SQL запрос.
Этот модуль позволяет отображать SQL-запрос не только во время предварительного просмотра в реальном времени, но и при обычном выполнении представления. Вы можете добавить нижний колонтитул в представление со следующим PHP-кодом:
<?php
$rows = array();
$view->exposed_input['views_show_query_uid'] = 1;
views_show_query_views_preview_info_alter($rows, $view);
drupal_set_message($rows['query'][0]);
?>
ИЛИ
Есть еще один модуль под названием Кодировщик запросов, который преобразует SQL-запрос в код уровня абстракции базы данных Drupal.
Также стоит упомянуть, на всякий случай, если вы не знали, представления покажут вам SQL, который он генерирует и использует, если вы включите его видимость на странице настроек представлений
- перейдите в раздел /администратор/структура/представления/настройки
- Проверка - Отображение информации и статистики о просмотре во время предварительного просмотра в реальном времени
- Проверка - Показать SQL-запрос
Однако этот запрос может быть серьезно сложным, если у вас много связей и контекстных фильтров. Другие модули рекомендовано @Krishnamohan сделать его намного более удобоваримым. Но это то, что он делает изначально.