我有一个名为“设备”的MYSQL表。我已经成功完成了垃圾桶/蛋糕烘烤。事实上,我有自动生成的DevicesController.php完全可用。但我不知道如何计算表中的行。我已经试过:在CakePHP 3.x中,如何计算MySql表中的行数?
$conn = ConnectionManager::get('default');
$numRows = $conn->execute('select count(*) from devices');
和
$this->DeviceSetups = TableRegistry::get('Devices');
$numRows = $this->Devices->query('select count(*) from devices'); // both like this
$numRows = $this->Devices->query('select count(*) from devices')->execute(); // and like this
和
$this->DeviceSetups = TableRegistry::get('Devices');
$numRows = $this->Devices->find('count');
去通的mysql_query()是不是一个真正的好主意,因为我拥有所有的接入信息已经设置在app.php供CakePHP使用。我尝试了使用AnyModel的其他功能,但这种功能无效。
前2尝试返回一个Cake \ Database \ Statement \ MysqlStatement不是一个整数与表中的行数。我已经咨询了this答案和this答案并阅读了CakePHP文档。没有任何东西似乎告诉我如何计算表格以及如何执行原始的My SQL命令字符串,然后访问结果。
如果你的db表叫做'devices',那么表类名/别名通常应该是'Devices',而不是'DeviceSetups' !?除此之外它是'find() - > count()',没有'count'发现者。 ** http://book.cakephp.org/3.0/en/orm/query-builder.html#returning-the-total-count-of-records** | ** http://book.cakephph.org/3.0/en/orm/retrieving-data-and-resultsets.html#getting-a-count-of-results** – ndm
Thx,是的,这是一个错字。我总是改变一些事情以确保我的开发保持专有。在这种情况下,我在变化之间处于中间状态。 –