如何在cakephp中为行为方法设置pass-by-reference参数?

时间:2013-08-28 10:36:46

标签: cakephp cakephp-2.0 pass-by-reference behavior

根据http://book.cakephp.org/2.0/en/models/behaviors.html#creating-behavior-methods

我可以做以下事情:

public function fly(Model $Model, $from, $to) {
    // Do some flying.
}

我希望在行为方法中有一个传递引用参数。

这是我的方法:

public function extractByFields(Model $model, $data, $options = array(), Array $missingFields) {

我希望通过引用传递的参数是$missingFields

原因是因为我想返回我的$foundFields但是如果还有其他缺少的字段,我也想将它们暴露给方法调用者。

如果CakePHP不允许我在我的行为方法中返回传递引用的参数,我想就如何最好地解决方法提出一些建议?

我的版本是CakePHP2.4

1 个答案:

答案 0 :(得分:1)

使用行为方法,您无法使用传递引用参数。 call_user_func_array()用于调用方法,参数不通过引用传递。

可能的解决方法:将Behavior类中缺少的字段存储为属性,并具有检索它们的方法。