0
如前所述使用requestAction從殼牌,當我在shell中使用:不能在CakePHP 2.5
$this->requestAction('/sites/zaz/option1');
的動作不會被觸發。爲了測試這個,我嘗試過:
public function zaz($option1 = null) {
CakeLog::write('acces', 'action triggered');
return 'got it !';
}
而且這個動作沒有完成,也沒有寫任何日誌。我所有的其他日誌都可以工作。
所以,我想:
$this->requestAction('/sites/actionwhichdoesntexist/option1');
而且我得到了一個錯誤,說明該操作不存在。
我真的需要使用requestAction,因爲我有一個模型/控制器,並且此操作通常測試資源是否仍然存在。我想爲了順利辦理了「要求」方面使用requestAction,這樣我會建立一些更強大的:
if(empty($this->request->params['requested']))
$this->redirect(array('controller'=>'proxies', 'action'=>'index', 'admin'=>true));
else
return true;
我試着用2.4.1和2.5,沒有恰好,沒有輸出給定,即使我在這個動作中放了一個'die()'。
2件事1)你可能正在訪問一個_different_ action,或者beforeFilter或一個組件干擾 - 它取決於定義的路由和beforeFilter /組件邏輯2)**不要使用requestAction **你所描述的 - 將邏輯放在模型方法中,並調用模型method_。 – AD7six
謝謝,這確實是beforeFilter失蹤(需要記錄)。但是在我想要執行的操作中沒有與數據/ sql相關的內容,這就是爲什麼我最初不想將它放入模型中的原因。 – mattspain