Làm thế nào để đăng nhập truy vấn SQL của bộ sưu tập?


9

Tôi muốn đăng nhập truy vấn SQL cho một bộ sưu tập tùy chỉnh. Tôi đã thử mã sau đây. Nhưng không hoạt động. Bất kỳ đề xuất sẽ được đánh giá cao.

Mage::log($collection->getSelect(),null,'test.log',true);

Câu trả lời:


10

Nếu bạn muốn truy vấn SQL từ một bộ sưu tập, bạn cần truyền nó thành chuỗi. Chỉ cần thêm (string)vào mã đăng nhập trước đây của bạn.

Mage::log((string)$collection->getSelect(),null,'test.log',true);

12

Hãy thử $Collection->printLogQuery(true);điều này sẽ in truy vấn bộ sưu tập.


Cảm ơn rât nhiều. Mã của bạn in truy vấn đến giao diện.
Sukeshini

2

Như Flyingmana đã giải thích cho tôi, nhờ anh ấy.

$collection->load($printQuery = false, $logQuery = false)

Điều quan trọng là phải ghi nhật ký hoặc in truy vấn sau khi tải, bởi vì trong beforeLoadphương thức có thể thực hiện được nhiều việc. Vì vậy, câu trả lời đầu tiên:

Mage::log((string)$collection->getSelect(),null,'test.log',true);

nên được sử dụng SAU loadđược gọi.


Cách nhận sự kiện hiện tại và in vào logfile trong Magento 1.9
Gem

Tôi không nhận được câu hỏi. Sự kiện nào?
Fabian Blechschmidt

2

Bước 1:

$result_colletion = print_r($collection->getSelect());
Mage::log($$result_colletion, null, custom_collection.log,true);

Bước 2: Sau đó Đăng nhập vào phần quản trị Magento và kích hoạt cài đặt nhật ký. Vui lòng xem bên dưới .

Hệ thống> Cấu hình> Nhà phát triển> Cài đặt nhật ký

Bước 3: Sau đó, xem tập tin nhật ký tập tin Custom_collection.log, trong thư mục var / log /.


1
Mage::log($collection->getSelect()->__toString(), Zend_Log::DEBUG, 'test.log', true);

Biên tập:

Thay vì sử dụng null(dự phòng DEBUG) như tham số thứ hai, tốt hơn là sử dụng một trong số này từ Zend_Log:

const EMERG   = 0;  // Emergency: system is unusable
const ALERT   = 1;  // Alert: action must be taken immediately
const CRIT    = 2;  // Critical: critical conditions
const ERR     = 3;  // Error: error conditions
const WARN    = 4;  // Warning: warning conditions
const NOTICE  = 5;  // Notice: normal but significant condition
const INFO    = 6;  // Informational: informational messages
const DEBUG   = 7;  // Debug: debug messages
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.