私は2つのモデルを持っています:Event
とVenue
。イベントは会場に属し、会場は多くのイベントを持つことができます。イベントと会場の両方を1つのフォームで一度に保存しようとしています。これは私がこれまでに私のコントローラーに持っているものです:
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
テーブルではゼロです。新しく作成された会場の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'
);
}