在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_products
且别名为CartProducts
,则表示不起作用}
SQL应如下所示:
UPDATE cart_products AS CartProducts SET... WHERE CartProducts.id = ...
而不是
UPDATE cart_products SET... WHERE CartProducts.id = ...
BTW:上面的代码来自我的行为。
答案 0 :(得分:1)
您无法在updateAll()
次查询中使用别名。 updateAll()
函数不支持联接,因此所有字段都可以使用unaliased。