2010-08-19 11 views
11

hay una manera razonable para acceder a la vista de atributos "passedArgs" (o cualquier similares)cakephp acceso ver los atributos/variables dentro de un ayudante

/* view */ 
$this->passedArgs 

desde dentro de un ayudante?

Me complace personalizar el _construct() del helper o personalizar el app_helper ... pero no quiero tener que pasar $this->passedArgs en el helper en cada vista o uso.

Respuesta

26

2.x torta y 3.x

Se puede consultar sus variables en el _View objeto:

$this->_View->viewVars['foo']; 

1.x Cake

Si Agarras el objeto de vista actual desde el helper que deberías poder acceder a sus passedArgs.

class SomeHelper extends AppHelper { 
    function __construct($settings = array()){ 
    $this->passedArgs = ClassRegistry::getObject('view')->passedArgs; 
    } 
} 

1.2.x Cake

Si agarras la vista actual objeto desde dentro del ayudante debe ser capaz de llegar a sus viewVars.

class SomeHelper extends AppHelper { 
    function __construct($settings = array()){ 
    $this->viewVars = ClassRegistry::getObject('view')->viewVars; 
    } 
} 

Enjoy, Nick

+5

Para mí que necesitaba para obtener las variables de la vista establecidas desde el controlador, por lo que era: '$ this-> viewVars = ClassRegistry :: getObject ('vista') -> viewVars; ' Esto es entonces una matriz, cuyas claves son el nombre de las variables que se extraen y se utilizan en la vista durante el procesamiento. – BeesonBison

+11

En CakePHP 2.x, puede acceder a viewVars desde el método de un ayudante usando: '$ this -> _ View-> viewVars ['var']' – BeesonBison

+0

+1 para atomicguava, que funciona mientras que ClassRegistry no funciona para mí. (Cake 2.3 estable) –

1

¿Ha intentado solo establecer el valor de la vista desde el AppController?

class AppController extends Controller { 
function beforeFilter() { 
    // other stuff 
    $this->set('passed_args', $this->params['pass']); 
} 
} 
Cuestiones relacionadas