使用cakePHP函数增加多个记录中的字段

时间:2011-05-06 11:03:45

标签: php cakephp

我会解释一下情况。

我有一些'模块',其中一个字段是主页面中的'位置'。如果我创建/编辑具有特定位置的模块,我想检查具有更高或相等位置的其余模块,并将它们向前移动一个位置。

在我的解决方案中,我使用模型的query()函数。

如何?

在我的模块模型中,我有一个函数......

function moveModules( $includedPosition ){

    if( !is_numeric( $includedPosition ) ){
        return false;
    }

    $sql = 
          "UPDATE modules "
        . " SET modules.position = modules.position + 1 "
        . " WHERE modules.position >= $includedPosition "
    ;

    $result = $this->query(  $sql );        

}

我可以在beforeSave()或控制器中的任何地方使用此功能,但是......

我想在不使用自定义查询的情况下询问是否存在可能的解决方案。

由于

解决方案(感谢Headshota)

function moveModules( $includedPosition ){

    if( !is_numeric( $includedPosition ) ){
        return false;
    }

    $this->updateAll(array('Module.position'=>'Module.position + 1'), array('Module.position >='=>$includedPosition ));


}

1 个答案:

答案 0 :(得分:1)

尝试使用updateAll

$this->Model->updateAll(array('Model.item'=>'Model.item+1'), array('Model.id'=>1));