2011-05-06 3 views
0

상황을 설명하겠습니다.cakePHP 함수를 사용하여 여러 레코드의 필드를 늘리십시오.

나는 '모듈'이 하나 있는데, 필드 중 하나는 기본 페이지의 '위치'입니다. 특정 위치의 모듈을 생성/편집하는 경우, 더 높거나 같은 위치에있는 나머지 모듈을 확인하고 한 위치 앞으로 이동 시키려고합니다.

내 솔루션에서는 모델의 query() 기능을 사용합니다.

어떻게? 내가 원하는 어디든지 beforeSave() 또는 컨트롤러에이 기능을 사용할 수 있습니다

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);   

} 

나는 기능이 내 모듈 모델에서

...하지만 ...

내가 물어보고 싶은 사용자 지정 쿼리를 사용하지 않고 가능한 솔루션이있는 경우

감사

솔루션 (감사 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

관련 문제