0
저는 두 모델이 있습니다 : Event
과 Venue
입니다. events belongsTo Venue, Venue는 많은 이벤트를 가질 수 있습니다. 나는 하나의 형식으로 하나의 이벤트와 장소를 저장하려고 노력하고있다. 이것은 내가 내 컨트롤러에 지금까지 무엇을 가지고 :CakePHP와 관계가 저장되지 않았습니다. 관계가 같습니다.
public function add() {
if ($this->request->is('post')) {
if ($this->Event->saveAll($this->request->data)) {
$this->Session->setFlash('Event successfully saved');
}
}
}
을 그리고 이것은 내 양식이다 : 아주 간단한
<?php
echo $this->Form->create('Event');
echo $this->Form->inputs(array(
'legend' => 'Event Details',
'Event.date',
'Event.title'
));
echo $this->Form->inputs(array(
'legend' => 'Venue Details',
'Venue.name',
'Venue.street_address',
'Venue.locality' => array('label' => 'Town/city'),
'Venue.postal_code'
));
echo $this->Form->end('Save Event');
?>
.
이제 Event
및 Venue
레코드가 모두 생성됩니다. 그러나 내 events
테이블의 venue_id
테이블은 0입니다. 새로 생성 된 장소의 ID로 설정되지 않았습니다. 이 문제를 어떻게 해결할 수 있습니까? 나는 그것이 꽤 간단하다고 확신한다!
편집 : 내 Event
모델 :
<?php
class Event extends AppModel {
public $name = 'Event';
public $actsAs = array(
'Containable'
);
public $belongsTo = array(
'Venue'
);
}
내 Venue
모델 :
<?php
class Venue extends AppModel {
public $name = 'Venue';
public $hasMany = array(
'Event'
);
}
연결이 올바르게 설정되어 있습니까? 나에게 잘 어울리는구나. – Ross
나는 그렇게 믿는다. 질문에 내 모델 정의를 추가했습니다. –
Cake *는 주/부모 모델을 먼저 저장해야한다고 추측합니다.이 경우에는 'Venue'' Venue (parent) hasMany Event (children)'가 될 것입니다. 그래서 'Venue' 컨트롤러/모델/뷰 대신에 같은 일을 시도해보십시오. – Ross