用 cakephp 附加一个 mysql 的字段

append an field of mysql with cakephp

有人可以帮我处理这个 cakephp 代码吗?

我尝试在 UpdateAll 中附加一个字段...

$this->MyModel->updateAll(
array(
    'MyModel.Field1'     => ***MyModel.Field1 & 'ok'***,
),
array('MyModel.Field2' => 'lorem')
);

如文档中所述,Model::updateAll()$fields 参数接受 SQL 表达式,因此只需传递所需的任何内容,在您的情况下可能是 CONCAT 操作:

$this->MyModel->updateAll(
    array('MyModel.Field1' => "CONCAT(MyModel.Field1, 'ok')"),
    array('MyModel.Field2' => 'lorem')
);

并且不要忘记这些值不会被转义!如果您打算注入用户数据,请确保使用 DboSource::value() 正确准备它。不幸的是,在使用 updateAll() 时无法绑定参数,这应该始终是在未应用自动转义时插入数据的首选方法。

另见 http://book.cakephp.org/2.0/en/models/saving-your-data.html#model-updateall-array-fields-mixed-conditions