2012-06-25 2 views
0

테이블의 모든 항목을 편집하는 기능을 사용하고 있습니다. 액션이 경우모든 기능 편집이 작동하지 않습니다 - CakePHP

public function editAll() 
    { 
     $this->set('isEditAllValid', false); 
     $this->set('editAllValidationErrors', false); 

     if ($this->request->is('post')) 
     { 
      $this->LocalClock->table = 'local_clocks'; 
      $this->LocalClock->getDataSource()->tableFields['local_clocks'] = array("id", "name", "auto_offset", "utc_offset_sec", "in_month", "in_week", "in_day", "in_hour", "out_month", "out_week", "out_day", "out_hour", "offset_sec"); 
      $this->set('localClocksEntries', $this->LocalClock->find('all')); 
      if ($this->LocalClock->save($this->request->data)) 
      { 
       foreach($localClocksEntries as $LocalClock) 
       { 
        $this->set('LocalClock', $this->request->data); 
        $this->LocalClock->save($LocalClock); 
        $this->set('isEditAllValid', true); 
        $this->set('editAllValidationErrors', false); 
       } 
      } 
      else 
      { 
       $this->set('isEditAllValid', false); 
       $this->set('editAllValidationErrors', true); 
      } 
     } 
    } 

내가, 거짓 (검증 물건)에 대한 몇 가지 부울 변수를 설정하는 코드에서 일을하고, 다음 게시물 지역을 잡아 : 여기

내 컨트롤러에서 내 편집 작업입니다 시계 테이블에 저장하고 저장 용 변수에 삽입하십시오. 그런 다음 해당 변수를 반복하고 표에있는 각 항목에 게시 된 데이터를 저장하십시오.

왜 그런지 모르지만 모두 편집하려고 할 때 점점 더 많은 오류가 발생합니다.

고지 (8) : 정의되지 않은 변수 : localClocksEntries [APP/컨트롤러/LocalClocksController.php, 라인 (158)]
(2) : 경고의 foreach 위해 공급 잘못된 인수() APP/컨트롤러/LocalClocksController.php을 line 158]

기본적으로 테이블의 모든 행을 반복하고 사용자가 양식에 입력 한 내용으로 변경하려고합니다.

답변

3
$this->set('localClocksEntries', $this->LocalClock->find('all')); 

이 뷰 가변 를 설정한다. 현재 범위에서 해당 변수를 만들지 않습니다. 변수 $localClocksEntriesforeach ($localClocksEntries ...에 없습니다. 현재 범위에서 변수를 사용하려면 는 뷰에게 전달 수행

$localClocksEntries = $this->LocalClock->find('all'); 
$this->set('localClocksEntries', $localClocksEntries); 
+0

나는 변화를 만들어 나는 그 오류를하지 않습니다. 그러나 저장하려고하면 기존 항목을 편집하지 않고 표에 새 항목을 추가해야합니다. 어떤 아이디어? – RXC

+1

루프의 각 반복마다 기본 키 (id)를 설정해야합니다. ID가 지정되지 않으면 cake는 편집하지 않고 새 행을 만듭니다. – Hoff

+0

@Hoff - 도움을 주셔서 감사합니다. 방금이 두 줄을 추가하여 해결했습니다. '$ this-> LocalClock-> id = $ LocalClock [ 'LocalClock'] [ 'id']; $ this-> LocalClock-> save ($ this-> request-> data); ' – RXC

관련 문제