yii2 - 如何从控制台截断表

时间:2016-02-17 15:10:33

标签: php yii2

我已经创建了一个控制台命令,我需要截断一个表。

读取类引用:http://www.yiiframework.com/doc-2.0/yii-db-command.html#truncateTable()-detail我无法理解为执行此命令需要包含哪些文件。

我包括:

use yii\db\Command;
use yii\db\Connection;

但不确定哪一个是正确的。

我试图执行:

$command = Yii::$app->db->truncateTable('user');

这给了我以下错误:

  

异常' yii \ base \ UnknownMethodException'消息'调用未知方法:yii \ db \ Connection :: truncateTable()'

Yii::$connection->createCommand()->truncateTable('user');

这给了我以下错误:

  

PHP致命错误' yii \ base \ ErrorException'使用消息'访问未声明的静态属性:Yii :: $ connection'

我真的不明白我需要做什么。

3 个答案:

答案 0 :(得分:11)

Yii::$app->db->createCommand()->truncateTable('user')->execute();

答案 1 :(得分:2)

使用yii2迁移默认功能

yii2 migrate

步骤1.创建迁移

yii migrate/create truncate_table_xxx

第二步。修改档案xxx_truncate_table_xxx

有点像那样

class m150101_185401_truncate_table_xxx extends Migration
{
   $this->dropTable('xxx')
}

答案 2 :(得分:0)

或者可以使用:

User::deleteAll();

假设User是活动模型类。 此命令显示已删除记录的数量。

注意,与truncate不同,删除所有记录不会将自动增量计数器重置为1