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