我正在使用 CakePHP 3,我需要在多个表上运行原始 SQL 查询。在 CakePHP 2 中,这可以通过对任何模型 ( $this->Messages->query("select..")
) 使用 query() 方法来完成。
我需要允许我在 CakePHP 3 中运行 SQL 查询的方法。以下是我正在使用的代码片段:
$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); ??
如果您可以提供 CakePHP 3 模型文档的链接,我可以在其中找到此信息,那也会很有帮助。我尝试在谷歌上搜索,但只能找到与 CakePHP 2 相关的问题。