Orm CakePHP 3:截断表

Orm CakePHP 3:截断表,orm,cakephp-3.0,Orm,Cakephp 3.0,如何使用CakePHP 3.x截断表 我通过以下方式获得truncate查询: $this->Coupons->schema()->truncateSql($this->Coupons->connection()); 但是执行它的最佳实践是什么呢?多亏了他的评论,这段代码工作得很好 //In Coupons Controller $this->Coupons->connection()->transactional(functio

如何使用CakePHP 3.x截断表

我通过以下方式获得truncate查询:

$this->Coupons->schema()->truncateSql($this->Coupons->connection());

但是执行它的最佳实践是什么呢?

多亏了他的评论,这段代码工作得很好

    //In Coupons Controller
    $this->Coupons->connection()->transactional(function ($conn) {
        $sqls = $this->Coupons->schema()->truncateSql($this->Coupons->connection());
        foreach ($sqls as $sql) {
            $this->Coupons->connection()->execute($sql)->execute();
        }
    });

这段代码运行得很好,感谢他的评论帮助答案变得更好

    //In Coupons Controller
    $this->Coupons->connection()->transactional(function ($conn) {
        $sqls = $this->Coupons->schema()->truncateSql($this->Coupons->connection());
        foreach ($sqls as $sql) {
            $this->Coupons->connection()->execute($sql)->execute();
        }
    });

CakePHP4中,可以使用以下代码截断表:

$table = $this->Coupons;
$sqls = $table->getSchema()->truncateSql($table->getConnection());
foreach ($sqls as $sql) {
  $table->getConnection()->execute($sql)->execute();
}

CakePHP4中,可以使用以下代码截断表:

$table = $this->Coupons;
$sqls = $table->getSchema()->truncateSql($table->getConnection());
foreach ($sqls as $sql) {
  $table->getConnection()->execute($sql)->execute();
}

我测试了以下内容,并且效果良好:

$connection=$this->优惠券->getConnection();
$connection->query(‘截断优惠券’);
参考:


在这里阅读更多内容:

我测试了以下内容,并且效果良好:

$connection=$this->优惠券->getConnection();
$connection->query(‘截断优惠券’);
参考:


阅读此处的更多信息:

您应该重用
$this->优惠券->连接()
,还可以使用
foreach
迭代并执行
truncateSql()
返回的所有可能的SQL语句,最后将其封装在。除此之外,通常是这样做的,框架没有提供任何其他方法来截断表。您应该重用
$this->tuples->connection()
,还应该使用
foreach
迭代并执行
truncateSql()
返回的所有可能的SQL语句,最后将其封装在。除此之外,通常是这样做的,框架没有提供用于截断表的其他方法。