我需要动态调用Controller方法。为此我编写了以下代码:
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 。
如何解决这个问题?
答案 0 :(得分:0)
为了完整起见,我会发布这个问题的答案,让任何有类似问题的人更容易找到解决方案。
代替:
$this->request->data
使用:
$Controller->request->data
在实例化 $Controller
对象之后。