Tất cả các giải pháp khác là lấy tên bộ điều khiển ... Tôi cần bộ điều khiển, vì vậy tôi đã thực hiện chức năng sau trong một AdminHelper.php được gọi là $this->Admin->_getController('MyControllerName')
vào khung nhìn.tập tin ctp
/******************************************************************
*
******************************************************************/
function _getController($pControllerName){
if (! isset($this->controllersArray[$pControllerName])){
$importRes = App::import('Controller', $pControllerName);// The same as require('controllers/users_controller.php');
$strToEval = "\$controller = new ".$pControllerName."Controller;";
$evalRes = eval($strToEval);
if ($evalRes === false){
throw new AppException("Eval returned an error into ".__FILE__." getController()");
}
$controller->constructClasses();// If we want the model associations, components, etc to be loaded
$this->controllersArray[$pControllerName] = $controller;
}
$result = $this->controllersArray[$pControllerName];
return $result;
}
Lưu ý: đừng quên khai báo nó vào bộ điều khiển bạn sẽ sử dụng ví dụ:
- người/view.ctp ->
$this->Admin->_getController('MyControllerName')
- PeopleController.ctp ->
var $helpers = array('Html', 'Form', 'Admin');
- AdminHelper.ctp ->
function _getController(...
Nguồn
2016-01-31 21:41:01
Cảm ơn đã gợi ý về '$ này -params'! – Oberst