Tuncate CakePHP 3.X表并重置自动增量ID

时间:2016-06-13 10:27:10

标签: cakephp cakephp-2.0 cakephp-3.0

在旧的cakePHP 2.X中,我使用了这句话:

$this->Products->query('TRUNCATE TABLE products;');

这是我可以将我的ID重置为1的唯一方法。现在在cakephp 3.X中,这似乎根本没有截断表格。

我试过了:

deleteAll();

哪个有效,但似乎总是需要一个条件,但最重要的是不会重置ID;

query()->delete()->execute();

删除所有内容但不重置ID。

有谁知道如何在 Cakephp 3.2

中完成此任务

2 个答案:

答案 0 :(得分:2)

在CakePHP3中执行任意查询的方式是:

$connection = \Cake\Datasource\ConnectionManager::get('default');

$connection->execute('TRUNCATE TABLE products');

http://book.cakephp.org/3.0/en/orm/database-basics.html#database-basics

答案 1 :(得分:2)

包括" ConnectionManager"控制器中的命名空间

use Cake\Datasource\ConnectionManager;

在您的操作中创建连接字符串并执行查询

$connection = ConnectionManager::get('default');
$results = $connection->execute('TRUNCATE TABLE tableName');