2011-05-06 37 views
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)); 


} 

回答

1

嘗試使用updateAll

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

它的工作原理!謝謝 – raultm 2011-05-06 11:25:05

相關問題