我有两个模型:Event
和Venue
。一个活动属于一个场地,一个场馆可以举办许多活动。我试图用一个表单一次性保存一个事件和场地。这是我到目前为止在我的控制器中所做的:
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
条记录。但我venue_id
表中的events
为零;它没有设置为新创建的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'
);
}
答案 0 :(得分:0)
似乎我在使用array('deep' => true)
方法时需要使用saveAll()
。
if ($this->Event->saveAll($this->request->data, array('deep' => true))) {
$this->Session->setFlash('Event successfully saved');
}
感谢所有评论的人。