0
我将解释这种情况。用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()
或控制器的地方我想使用这个功能,但...
我想问如果存在不使用自定义查询的可能解决方案。
感谢
SOLUTION(感谢Headshota)
function moveModules($includedPosition){
if(!is_numeric($includedPosition)){
return false;
}
$this->updateAll(array('Module.position'=>'Module.position + 1'), array('Module.position >='=>$includedPosition));
}
它的工作原理!谢谢 – raultm 2011-05-06 11:25:05