1

在 CakePHP 2 中我们可以在updateAll方法中使用别名,但在 CakePHP 3(测试 3.4.9)中不能使用别名?

$this->_table->updateAll([
    $this->_table->getAlias() . '.deleted' => Time::now()
], [
    $this->_table->getAlias() . '.' . $this->_table->getPrimaryKey() => $entity->{$this->_table->getPrimaryKey()}
]);

如果您的表是products并且别名是它是有效的,但如果您的表是并且别名是Products则不起作用cart_productsCartProducts

SQL 应如下所示:
UPDATE cart_products AS CartProducts SET... WHERE CartProducts.id = ...
而不是
UPDATE cart_products SET... WHERE CartProducts.id = ...

顺便说一句:上面的代码来自我的行为。

4

1 回答 1

1

您不能在updateAll()查询中使用别名。该updateAll()函数不支持连接,因此所有字段都可以不带别名使用。

于 2017-07-15T18:17:08.243 回答