2010-07-17 4 views
0

관련 모델에서 여러 (알 수없는) 레코드 수를 입력 할 수있는 뷰를 구현하는 방법을 궁금합니다.동시에 여러 테이블에서 새 레코드를 만드는 방법은 무엇입니까?

예를 들어 그룹 및 사용자라는 두 가지 모델이 있습니다. 그리고 그룹을 만들 수있는보기를 구현하고 싶습니다. (쉽게)이 그룹에 속한 여러 명의 사용자를 생성 할 수 있습니다. 에서

// Prepare the data for the Group hasMany User 
$data = array('Group' => array(
       'id' => 5, 
       'name' => 'my group', 
       'User' => array(
        array('id'=>1,'username' => 'john'), 
        array('id'=>2,'username' => 'pachelbel')) 
       ) 
      ) 

// OR if it's being passed in, just use $this->data in place of $data 

// Save all the data 
$this->Group->saveAll($data) 

: 그냥하는 시려면 ($ 데이터)를 사용하여 같은 데이터를 준비하고, 내가 .. 백엔드에서

답변

1

을 알려하지 않을 경우 내 질문에 분명하다 희망

보기, 당신은 올바르게 키를 array'd 갖도록 양식을 준비하려는 :

<form id="GroupCreateForm" method="post" action="/groups/create"> 
    <input type="hidden" name="data[Group][id]" value="5" /> 
    <input type="hidden" name="data[Group][name]" value="my group" /> 
    <input type="hidden" name="data[Group][User][0][id]" value="1" /> 
    <input type="hidden" name="data[Group][User][0][username]" value="john" /> 
    <input type="hidden" name="data[Group][User][1][id]" value="2" /> 
    <input type="hidden" name="data[Group][User][1][username]" value="pachelbel" /> 
</form> 

동적 폼에 사용자를 추가 할 경우, 새로운 input 엘을 주입하기 위해 자바 스크립트를 사용하여 고려 ements.

자세한 내용은 this을 참조하십시오.

+0

답장을 보내 주셔서 감사합니다. 나는 cakephp의 요리 책에 그 글을 읽었다. 프런트 엔드는 어떨까요? 어떻게 뷰를 구현할 수 있습니까? – dejavu

+0

편집을 확인하여 도움이되는지 확인하십시오. – ash

+0

충분합니다. 나는 여기서 나머지를 할 수있다. Jasie에게 도움을 주셔서 감사합니다. – dejavu

1

Cake 's Form 헬퍼를 사용하면 더 똑똑해질 수 있습니다. 위의 예제에서 다음과 같이 다시 작성할 수 있습니다.

<?php 
echo $this->Form->Create('Group'); 
echo $this->Form->input('Group.id'); 
echo $this->Form->input('Group.name'); 
for($i=0;$i<10;$i++){ 
    $this->Form->input('User.'.$i.'.id'); 
    $this->Form->input('User.'.$i.'.name'); 
} 
?> 

이 방법을 사용하면 필드 값 채우기뿐만 아니라 자동 오류 처리의 이점을 누릴 수 있습니다.

관련 문제