cakephp updateAll无法正常工作

geo*_*310 3 cakephp

我有以下代码:

$this->Permissions->updateAll(
    array('Permissions.user' => $newuser), 
    array('Permissions.user' => $originaluser)
);
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,我收到以下错误:

Warning (512): SQL Error: 1054: Unknown column 'counterstaff' in 'field list' [APP\cake\cake\libs\model\datasources\dbo_source.php, line 681]

Query: UPDATE `permissions` AS `Permissions` SET `Permissions`.`user` = counterstaff WHERE `Permissions`.`user` = 'counter' 
Run Code Online (Sandbox Code Playgroud)

出于某种原因,它认为我想要设置的值是一列.任何人都有任何想法为什么会发生这种情况?

geo*_*310 14

固定它!我必须在我的变量周围添加单引号,如下所示:

$this->Permissions->updateAll(
    array('Permissions.user' => "'".$newuser."'"), 
    array('Permissions.user' => $originaluser)
);
Run Code Online (Sandbox Code Playgroud)

  • 为什么Cake这样做? (2认同)