未与CakePHP一起保存的关系有很多关系

未与CakePHP一起保存的关系有很多关系,cakephp,model,Cakephp,Model,我有两种型号:活动和场馆。一个活动属于一个场地,一个场地可以有许多活动。我试图用一个表单一次性保存一个活动和场地。到目前为止,我的控制器中有以下内容: public function add() { if ($this->request->is('post')) { if ($this->Event->saveAll($this->request->data)) { $this->Session->s

我有两种型号:
活动
场馆
。一个活动属于一个场地,一个场地可以有许多活动。我试图用一个表单一次性保存一个活动和场地。到目前为止,我的控制器中有以下内容:

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');
?>
我的
场馆
车型:

<?php
class Event extends AppModel {

    public $name = 'Event';
    public $actsAs = array(
        'Containable'
    );
    public $belongsTo = array(
        'Venue'
    );
}
<?php
class Venue extends AppModel {
    public $name = 'Venue';
    public $hasMany = array(
        'Event'
    );
}

似乎我在使用
saveAll()方法时需要使用
array('deep'=>true)

if ($this->Event->saveAll($this->request->data, array('deep' => true))) {
    $this->Session->setFlash('Event successfully saved');
}

感谢所有发表评论的人。

您的关联设置正确吗?看起来没问题,我相信是的。我已经在问题中添加了我的模型定义。Cake建议您需要首先保存主/父模型,在这种情况下,您可以猜测主/父模型是
场馆
场馆(父)有许多活动(子)
。所以,试着做同样的事情,但用
场馆
控制器/模型/视图代替。你能发布$this->request->data的内容吗?