Tutte le altre soluzioni hanno il nome del controller ... Ho bisogno del controller stesso, quindi ho eseguito la seguente funzione in un AdminHelper.php chiamato da $this->Admin->_getController('MyControllerName')
nella vista.file di 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;
}
Nota: non dimenticate di dichiararla nel controllore che userete per esempio:
- persone/view.ctp ->
$this->Admin->_getController('MyControllerName')
- PeopleController.ctp ->
var $helpers = array('Html', 'Form', 'Admin');
- AdminHelper.ctp ->
function _getController(...
fonte
2016-01-31 21:41:01
Grazie per il suggerimento su '$ questo -params'! – Oberst