2013-08-28 43 views
0

http://book.cakephp.org/2.0/en/models/behaviors.html#creating-behavior-methods如何在cakephp中爲行爲方法提供傳遞參考參數?

我可以做到以下幾點:

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

有了你不能使用傳址引用參數行爲的方法。 call_user_func_array()用於調用方法,參數不通過引用傳遞。

可能的解決方法:將Behavior類中的缺少字段作爲屬性存儲並具有檢索它們的方法。

+0

只是想補充一點,我採用了Ceeram建議的解決方法。我將$ missingFields存儲爲私有屬性,並使用單獨的方法檢索它們 –