CakePHP의 폼 메서드 사용 (Cake 1.3.13) 많은 레코드를 편집하고 저장하는 폼을 만들려고합니다. 정말 큰 테이블 일 뿐이며 사용자는 각 레코드에 대해 단일 필드를 저장하고 있습니다. Cake의 기본 형식 함수는 하나의 레코드 만 제출하는 양식 요소를 생성합니다. 폼을 제출할 때 마지막 레코드의 데이터 만 저장됩니다. 모든 폼 요소는`$ this-> data '의 두 필드에만 저장되는 동일한 이름을 갖기 때문에 저장됩니다.여러 레코드를 저장하는 폼 만들기
이 내 폼 요소 :
<input type="hidden" name="data[Hauler][TicketNo]" value="35498155" hiddenfield="1" id="HaulerTicketNo">
그들이에 있어야 형식 :
$this->Form->hidden('TicketNo', array('value'=>$ticket['Hauler']['TicketNo']))
$this->Form->checkbox('Paid',array('value'=>$ticket['Hauler']['Paid']))
이것은 단지 하나의 레코드를 저장합니다 다음 HTML을 산출
<input type="hidden" name="data[Hauler][id][TicketNo]" value="35498155" hiddenfield="1" id="HaulerTicketNo">
여기서 id는 레코드의 기본 키입니다. 이 방법을 사용하면 일치하는 레코드의 id가 $this->data
배열로 전달되므로 올바르게 이해하면 모든 일치하는 레코드를 저장할 수 있습니다. HTML과 PHP를 통해 이러한 양식을 수동으로 생성 할 수 있지만이를 수행하는 cakePHP 양식 방법이 있어야합니다.
$this->Form->hidden('Hauler.' . $i . '.TicketNo', array('value'=>$ticket['Hauler']['TicketNo']));
resuling의 POSTDATA는 $ 데이터와 같은 배열이됩니다
내가 기록을 반복하는 대신 배열 키로 ID를 사용하지 않을 :
외부 데이터이므로 관련 규정을 준수해야합니다. 그래도 iterator 메소드를 시도하고있다. –
그건 효과가있다. 이상하게도 나는 [선택기] WHERE [Hauler]. [id] = 225434' [SELECT] COUNT (*) [rs_Hauler] AS [절약 할 수있는 모든 행에 대해] 'saveAll()'에서 왜 그런 일이 일어날 지 알고 싶습니까? –