Variable Controller dans Component

Par etiennedewa, il y a 11 ans


Bonjour,
J'ai une variable défini au niveau de mon AppController :

public $_var = 'abc';

J'arrive donc à la retrouver dans tous mes controllers mais je voudrais la retrouver dans ma classe Auth Personnalisé dans /Controller/Component/Auth/CustomAuthentificate.php

Si vous avez une idée, merci ;)

3 réponses

Inspirat, il y a 11 ans

Il faut passer tes variables en paramètre lors de la création de l'instance de ton composant dans ton controller:

// app/Controller/AppController.php public $component = array( 'Session', 'Cookie', 'CustomAuth' => array('variable' => $_var) ); // app/Controller/Component/Auth/CustomAuthentificate.php public $_var = array(); public function __construct(ComponentCollection $collection, $_var = array()){ $this->_var = $_var; }

Et au cas ou, la documentation (en français) de CakePHP: Components (Composants)

etiennedewa, il y a 11 ans

Bonjour,
Oui, j'avais essayé ça mais je défini ma variable dans le beforeFilter au niveau de l'app controller du coup quand il initialise ma classe, la variable est vide ...

Inspirat, il y a 11 ans

Dans ce cas, un simple appel à la fonction suffit:

// app/Controller/AppController.php public $components = array('CustomAuthenticate'); public function beforeFilter(){ parent::beforeFilter(); $this->CustomAuthenticate->set($_var); // Dans ce cas $_var est un tableau } // app/Controller/Component/Aut/CustomAuthenticate.php public $_var = array(); public function set($_var = array()){ $this->_var = $_var; }