簡體   English   中英

CakePHP - call_user_func_array() 丟失了 $this->request->data?

[英]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->dataNULL

如何解決這個問題?

為了完整起見,我將發布此問題的答案,供遇到類似問題的任何人更輕松地找到解決方案。

代替:

$this->request->data

采用:

$Controller->request->data

實例化$Controller對象之后。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM