私は最新のDrupal 8.1.1もインストールしました。Develモジュールもインストールしました。D7のDevelモジュールにある間、Devel設定ページにクエリログを表示するオプションはありません。関係を含むビューを作成しましたそのビューのSQLクエリをフロントエンドに表示したいと思います。
フロントエンドでビューのSQLクエリを印刷するにはどうすればよいですか?
Develモジュールにはwebprofilerモジュールが含まれています。クエリログを表示するには、これを有効にする必要があります。
8.1には 現在コアにバグがある であるため使用できないことに注意してください。
Webprofilerモジュールをインストールすることもできますが、カスタムモジュールをすでに入手している場合は、これを行う方が速い場合があります。
/**
* Implements hook_views_post_execute().
*/
function MY_MODULE_views_post_execute(ViewExecutable $view) {
if ($view->id() != 'MY_SPECIAL_VIEW') {
return;
}
dpq($view->query->query());
}
データベース抽象化レイヤーを使用して独自のクエリを実行している場合は、addTagメソッドを使用して 'debug'を渡すこともできます。
$ query-> addTag( 'debug')
単純にdpq($query->query());
を実行できます。これにより、クエリがフロントエンドのメッセージ領域に配置されます。編集-この機能を使用するには、開発モジュールが必要です。
誰かがDrupal 7 Dalinの答えと同等のものを探している場合、構造は少し異なります。
/**
* 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