【发布时间】:2012-10-10 01:11:29
【问题描述】:
我在 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
我当然可以简单地多写 2 个函数,但我相信应该有一种方法可以使用 call_user_func 来完成相同的目标,而无需编写更多代码。
帮助我了解如何编写此类代码以及如何调用新函数。
【问题讨论】:
-
那么,您的问题是什么?如果你有适合你的方法,你为什么不开心?您可以随时从模型中的任何方法调用
call_user_func或任何其他 php 函数。 -
@bancer 你说得对,我至少有一个工作方法。我只是想学习如何编写更好的解决方案和更优雅的代码。
-
4 行方法对我来说似乎简短、清晰、优雅。关键词是“清楚”。它易于阅读和理解。看看这里 - programmers.stackexchange.com/questions/97912/…