1

我正在尝试将数据保存在多个模型关联中,但根本没有保存相同的数据。我已经正确设置了,即表单中的数据正常(调试显示全部)并且 find 也获取了数据,但无法理解问题出在哪里。我的代码如下:

控制器:

if($url == "expense_reports") { $this->set('tab_content','Invoice - Expense Reports'); $this->render('/job/invoice2'); 
        if($this->request->is('post'))
    {//debug($this->data);
 $this->Event->Invoice->Expense->save($this->data);                         }
}

模型(协会):

事件

public $belongsTo = array(
        'EventType' => array(
            'className' => 'AgencyCalendar.EventType',
            'foreignKey' => 'event_type_id'
        )
    );

    public $hasMany = array(
        'Invoice' => array(
            'className' => 'AgencyCalendar.Invoice',
            'foreignKey' => 'event_id',
            'dependent' => false
        )
    );

发票

public $belongsTo = array(
        'Event' => array(
            'className' => 'AgencyCalendar.Event',
            'foreignKey' => 'event_id'
        )
    );

public $hasMany = array(
        'Expense' => array(
            'className' => 'AgencyCalendar.Expense',
            'foreignKey' => 'invoice_id',
            'dependent' => false
        )
    );

费用

public $belongsTo = array(
        'Invoice' => array(
            'className' => 'AgencyCalendar.Invoice',
            'foreignKey' => 'invoice_id'
        )
    );

对于这个特定的操作,我也没有得到任何 sql 转储,以找出实际发生的情况。另外,如何保存从我的费用视图中生成的多行。我的费用视图是自定义 url,所以这可能是不显示 sql 转储的原因,还是根本不保存数据的原因?请让我知道我做错了什么?

4

1 回答 1

0

我相信您正在寻找的是 saveAll。(http://book.cakephp.org/2.0/en/models/saving-your-data.html#model-saveall-array-data-null-array-options-array)

$this->Event->saveAll($this->data); 

只要您具备以下条件,这将起作用: - 模型关系设置正确 - $this->data 中的正确数组属性

于 2013-01-15T19:48:14.553 回答