Làm cách nào để gỡ lỗi các truy vấn thực thể trong Drupal 8?


9

Có giải pháp vượt trội nào để in truy vấn của truy vấn thực thể trong Drupal 8 không?

Ngay bây giờ tôi đang sử dụng một loại hack, thêm:

->addTag('debug')

và sau đó trong một mô-đun tùy chỉnh:

function mymodule_query_alter($query) {
  if ($query->hasTag('debug')) {
    mymodule_query_debug($query);
  }
}

và sau đó là chức năng gỡ lỗi:

function mymodule_query_debug($query) {

  $sql = (string) $query;
  $quoted = array();
  foreach ((array) $query->arguments() as $key => $val) {
    if (is_array($val)) {
      $val = implode(', ',$val);
    }
    $quoted[$key] = \Drupal::database()->quote($val);
  }
  $sql = strtr($sql, $quoted);
  $sql = str_replace('}', '', $sql);
  $sql = str_replace('{', '', $sql);
  print_r($sql);
  die();
}

Câu trả lời:


5

Đối với Drupal 8, có mô-đun Devel và mô-đun Web Profiler . Mô-đun thứ hai, sau khi được bật, sẽ cài đặt một thanh công cụ ở cuối trang cho người dùng có quyền thích hợp. Nút cơ sở dữ liệu trong thanh công cụ này sẽ đưa bạn đến một trang kiểm tra hiển thị tất cả các truy vấn cơ sở dữ liệu được thực hiện trong yêu cầu cuối cùng.

Nếu bạn có thể kích hoạt truy vấn thực thể thông qua bất kỳ yêu cầu trình duyệt nào, bạn sẽ có thể kiểm tra danh sách các truy vấn DB cho truy vấn thực thể cụ thể mà bạn đang tìm cách gỡ lỗi.


ok, tuyệt vời, sẽ thử nó
oknate
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.