CakePHP:之前没有使用saveMany吗?

时间:2012-06-05 19:09:33

标签: cakephp save

因此,出于某种原因,我对beforeSave回调中的数据所做的任何事情虽然适用于单个记录,但在使用saveMany时不起作用。

是什么给出的?如果我执行以下操作:

public function beforeSave() {
    $this->data['foo'] = 'bar'
    die($this->data);
}

我可以看到实际上$ this->数据确实会被更改,但是saveMany只是忽略它并保存原始数据。

1 个答案:

答案 0 :(得分:3)

确保在操作$ this->数据时包含型号名称,例如$ this-> data ['Event'] ['foo'] = bar。确保方法也返回true,否则保存将失败。


修改

我掀起了一个简单的例子,它似乎对我有用,请参阅下面的代码。我的怀疑是,你可能错误地调用了saveMany并将整个$ this-> request->数据对象传递给它,但是如果没有看到你的电话也很难猜到。

查看

<?php echo $this->Form->create('ParentTable'); ?>
    Record 1: <br />
    <?php echo $this->Form->input('ParentTable.0.name'); ?>

    Record 2: <br />
    <?php echo $this->Form->input('ParentTable.1.name'); ?>
<?php echo $this->Form->end('Submit'); ?>

<强>控制器

public function index() {
    if ($this->request->data) {
        $this->ParentTable->saveMany($this->request->data['ParentTable']);
    }
}

<强>模型

public function beforeSave() {
    $this->data['ParentTable']['name'] .= ' modified';
    return true;
}