使用CakePHP 3中的查询将一个添加到整数列

时间:2018-01-17 20:56:14

标签: php cakephp cakephp-3.x

我不记得究竟是怎么回事,但我记得能够在不知道整数列值的情况下用查询在mysql中添加一个整数列...

类似

update table set column=column+1 where id=1

我想知道,如何使用CakePHP 3进行上述查询

1 个答案:

答案 0 :(得分:1)

您可以使用\Cake\ORM\Table::updateAll()(或基础\Cake\Database\Query::update()),并使用表达式生成算术运算部分,如:

$additionExpression = $Table->query()->newExpr('column + 1');

$affectedRows = $Table->updateAll(
    ['column' => $additionExpression],
    ['id' => 1]
);

如果您想使用自动标识符引用,可能会更复杂一些:

$additionExpression = $Table
    ->query()
    ->newExpr()
    ->add([
        new \Cake\Database\Expression\IdentifierExpression('column'),
        '1'
    ])
    ->setConjunction('+'); // tieWith() before CakePHP 3.4

另见