如何在cakephp模型类中使用call_user_func?

时间:2012-10-10 01:11:30

标签: php cakephp callback

我在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来加载行为。

     

我想要卸载行为的主要原因有时是因为行为触发的验证和回调在某些情况下不合适 ,saveAssociated或saveMany

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

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

1 个答案:

答案 0 :(得分:0)

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

$this->save($data, array('validate' => true, 'callbacks' => false));