2013-07-09 2 views
1

나는 누군가가 나를 도울 수있을만큼 충분히 명확 할 것이라는 희망으로 나의 상황을 설명하기 위해 최선을 다할 것이다 :CakePHP 부모/자식 협회 : 동시에 레코드를 만드는 데 혼란이 있습니까?

나는 현재 '요청'모델을 가지고있다. 이것은 웹 양식과 폼의 사용자 선택에 따라 하나 이상의 레코드를 저장하는 컨트롤러로 구성됩니다 (예를 들어, 다중 선택 상자에서 여러 번 선택을하면 여러 레코드가 생성되어 저장됩니다).

제대로 작동하지만이 모든 '요청'은 관련성이 있으므로 쉽게 참조 할 수 있도록 그룹화해야합니다. '그룹스'라는 새로운 모델을 만들었습니다.

var $belongsTo = array('Group' => array('className' => 'Group', 'foreignKey' => 'group_id')); 

을하고 '요청'데이터베이스 테이블에 GROUP_ID 열을 만들어 내 '요청'모델에서, 나는했습니다. '그룹'컨트롤러에서

, 나는 내가 새를 만드는 시도, 내가 양식 입력의 처리의 모든 작업을 수행하고 레코드를 만들 내 '요청'컨트롤러에 지금

var $hasMany = array('Requests' => array('className' => 'Request')); 

를 넣어

$this->Request->Group->create(); 

이 작동와 '그룹'과 '그룹'데이터베이스 레코드는 '요청'레코드하지만 'GROUP_ID'필드가 제대로 설정되어 있지 않은 (적절하게 '요청'이와 함께)한다 . 수동으로 시도 할 때 $this->Request->data['Group']['id'] 또는 $this->Request->Group->id으로 설정하는 것과 같이 CakePHP는이 값이 NULL이라고 알려줍니다. 그래서 나는이 협회가 전혀 일하고 있는지 알 방법이 없습니다.

분명히 뭔가 잘못하고 있습니다. 모든 '만들기'및 '저장'논리를 '요청'컨트롤러에서 '그룹'컨트롤러로 이동해야합니까? 이게 고통 스러울 것 같아. "어린이"의 컨트롤러에서 "부모"와 "어린이"를 한 번에 만드는 데 문제가 있습니까?

기록을 위해 - 저는 CakePHP 1.1을 사용하고 있으며, 불행하게도 업그레이드 할 수 없습니다.

+0

이것은 [mysql] 문제가 아닙니다. – Strawberry

+0

죄송합니다, 그 태그를 제거했습니다 – dcarr622

답변

0

당신에게 마지막으로 만든 그룹의 ID를 제공해야합니다 $this->Request->Group->getLastInsertID();

에 수동으로 '요청'레코드의 'GROUP_ID'필드를 설정하려고합니다.

+0

'요청'레코드를 저장할 수 없으므로 NULL이 반환됩니다. '그룹'이 생성되어야한다고 언급 했으므로 'group_id'는 null이 될 수 없습니다. – dcarr622

+0

신분증. 아마 $ this-> Group-> getLastInsertID(); ? 그룹이 컨트롤러에 의해 사용되는 경우. sidenote에, 어쩌면 당신은 업그레이 드해야합니다 :) –

+0

내가 몇 가지 여분의 설정을했고 getLastInsertID() 후 그걸 망치고 있었어() 명령을 저장, 지금 작동 :) 내가 업그레이드 할 수 있으면 좋겠지 만 이것은 켜져있다. 수십 개의 사이트와 수많은 공유 파일 서버가있는 회사의 공유 서버에 대해 완전히 이해하지 못해서 – dcarr622