0

我在 cakephp 模型中有以下函数:

/**
 *
 * saveMany without MeioUpload validations
 *
 */
public function saveManyDataOnly($data) {
    // since creating records without files, 
    // we need to detach the behavior
    $this->Behaviors->unload('MeioUpload.MeioUpload');

    $result = $this->saveMany($data);

    $this->Behaviors->load('MeioUpload.MeioUpload');        

    return $result;
}

我也需要同样的东西来保存和保存关联。

同样,我的意思是我需要在分别调用 save 和 saveAssociated 后卸载然后重新加载行为。

我不希望使用回调 beforeSave 和 afterSave。

添加:

我也不希望覆盖 save 和 saveAssociated 方法。

原因是有时我想在加载行为的情况下使用 save、saveAssociated、saveMany。

我有时想卸载行为的主要原因是因为在某些情况下,当我执行 save、saveAssociated 或 saveMany 时,由行为触发的验证和回调是不可取的

我当然可以简单地再写 2 个函数,但我相信应该有一种方法可以使用 call_user_func 来完成相同的目标,而无需编写更多代码。

帮助我了解如何编写此类代码以及如何调用新函数。

4

1 回答 1

0

您可以通过传递 'callbacks' => false 暂时禁用回调函数:

$this->save($data, array('validate' => true, 'callbacks' => false)); 
于 2012-10-10T02:16:36.493 回答