[英]CakePHP - call_user_func_array() looses $this->request->data?
我需要動態調用控制器方法。 為此,我編寫了以下代碼:
if(isset($method['postParams'])) {
foreach($method['postParams'] as $index => $param) {
$this->request->data[ $index ] = $param;
}
}
App::import('Controller', $method['controller']);
// get result
$method['controller'] = $method['controller'] . 'Controller';
$Controller = new $method['controller']();
try {
if(count($method['params'])) {
$varVal = call_user_func_array(array($Controller, $method['method']), $method['params']);
} else {
$varVal = call_user_func(array($Controller, $method['method']));
}
} catch(Exception $e) {
$varVal = $e;
}
$this->set($varName, $varVal);
現在我調試被調用的函數並看到$this->request->data是NULL 。
如何解決這個問題?
為了完整起見,我將發布此問題的答案,供遇到類似問題的任何人更輕松地找到解決方案。
代替:
$this->request->data
采用:
$Controller->request->data
在實例化$Controller
對象之后。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.