Tôi đang sử dụng CakePHP 3, tôi cần chạy truy vấn SQL thô trên nhiều bảng. Trong CakePHP 2, điều này có thể được thực hiện bằng cách sử dụng phương thức query() trên bất kỳ mô hình nào ($this->Messages->query("select..")
).CakePHP 3 Truy vấn SQL thô
tôi cần những phương pháp cho phép tôi để chạy một truy vấn SQL trong CakePHP 3. Dưới đây là đoạn mã Tôi đang sử dụng:
$aumTable = TableRegistry::get('Messages');
$sql = "SELECT (SELECT COUNT(*) FROM `messages`) AS `Total_Count`,
(SELECT COUNT(*) FROM `messages_output`) AS `Total_Output_Count`,
(SELECT COUNT(*) FROM `messages_output` WHERE `is_success`=1) AS `Total_Successful_Output_Count`,
(SELECT COUNT(*) FROM `messages_output` WHERE `is_success`=0) AS `Total_Error_Output_Count`,
(SELECT COUNT(*) FROM `users`) AS `Total_User_Count`;";
// to run this raw SQL query what method should i use? query() doesn't work..
// $result = $aumTable->query($sql); ??
// $result = $aumTable->sql($sql); ??
Nếu bạn có thể cung cấp các liên kết đến CakePHP 3 tài liệu mô hình nơi tôi có thể tìm thông tin này, điều đó cũng hữu ích. Tôi đã cố gắng tìm kiếm trên google nhưng chỉ có thể tìm thấy những câu hỏi liên quan đến CakePHP 2.
** http: //book.cakephp.org/3.0/en/orm/database-basics.html#managing-connections**> ** h ttp: //book.cakephp.org/3.0/en/orm/database-basics.html#database-queries** – ndm
Cảm ơn bạn. Câu trả lời là: chúng ta cần sử dụng ConnectionManager thay vì TableRegistry để chạy các truy vấn sql thô. – Ananth