Dans Cakephp, utiliser un assistant pour définir les variables de modèle
Question
Est-il possible de définir une variable de modèle dans un assistant?
En fin de compte, ce que je cherche à faire, c’est de demander à un assistant d’ajouter du code à l’en-tête de la mise en page, à utiliser avec javascript, etc.
Voici comment je pourrais penser que je préférerais ne pas utiliser:
- Passage dans l'objet de vue: vous ne voulez pas avoir à appeler une fonction supplémentaire
- en utilisant le " global " mot-clé pour obtenir la vue, j'aime vraiment éviter de l'utiliser, sauf en dernier recours, car il n'est pas considéré comme orthodoxe
Avez-vous des idées?
Mise à jour du 2012-02-20: Comme le gâteau a été mis à jour plus récemment, j'ai essayé d'inclure des réponses à Cake 1.2 ainsi qu'à Cake 2. Merci à Adam et à Mark pour ses recommandations
La solution
J'ai découvert que vous pouvez utiliser le registre de classes pour le récupérer. J'ai donc créé cette fonction dans mon aide:
/**
* Access to the view for special operatoins
*/
protected function getView() {
return ClassRegistry::getObject('view');
}
Mise à jour 2013-02-20:
J'ai écrit ce qui précède pour Cake 1.2, Adam (dans le commentaire ci-dessous) a suggéré d'utiliser $ this- > _View- > viewVars ['var']
pour Cake 2.3, ce qui est bien, mais je ne le fais pas. t avoir un moyen de tester.