Je n'arrive pas à définir dynamiquement la variable $template
d'un site construit sur Kohana.Définition dynamique du nom du modèle Kohana
Si je tends la classe Template_Controller, je peux définir le nom du modèle comme celui-ci:
public $template = 'template_file_name';
Mais je ne peux pas définir dynamiquement comme:
public $template = $this->setTemplate();
ou
switch($var):
default:
public $template = 'filename';
break;
endswitch;
Modification de la variable $template
en utilisant $this->template
dans le constructeur brise le T emplate_Controller en quelque sorte:
Fatal error: Call to a member function render() on a non-object
Dois-je définir le nom du fichier de modèle basé sur un ensemble variable dans le constructeur, ou peut-être tiré d'une bibliothèque externe.
Des idées pour rendre cela possible?
Je ne connais rien à Kohana, mais setTemplate() renvoie-t-il réellement une valeur? Aussi, vous devriez déclarer la variable après l'ouverture de la classe (mais en dehors du constructeur): 'public $ template;' et ensuite le définir dans le constructeur: '$ this-> template = 'template';'. –
Hmm, ça devrait être possible ..! Qu'est-ce qui se passe quand vous essayez? J'utilise pour définir beaucoup de propriétés de cette façon, y compris les relations ORM. Jamais essayé avec le nom de temple ... – Cambiata
Non, setTemplate ne renvoie pas de valeur - j'ai juste essayé de renvoyer une valeur dynamique ici à partir d'une fonction interne. La modification de la variable template $ à l'aide de $ this-> template dans le constructeur rompt le Template_Controller: Erreur fatale: appel à une fonction membre render() sur un non-objet – jmccartie