0
我有兩個模型:Event
和Venue
。一個事件屬於一個場所,而一個場地可以有許多事件。我試圖用一張表單一次性保存一個Event和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
爲零;它沒有設置爲新創建的Venue的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
我相信如此。我在問題中添加了我的模型定義。 –
蛋糕*建議*您需要首先保存主/父模型,在這種情況下,這將是'Venue''Venue(parent)hasMany Event(children)'。因此,請嘗試使用'Venue'控制器/模型/視圖來做同樣的事情。 – Ross