Définition dynamique du nom du modèle Kohana
Question
Je n'arrive pas à définir la variable $ template
de manière dynamique pour un site créé sur Kohana.
Si j'étends la classe Template_Controller, je peux définir le nom du modèle comme suit:
public $template = 'template_file_name';
Mais je ne peux pas le définir dynamiquement comme:
public $template = $this->setTemplate();
ou
switch($var):
default:
public $template = 'filename';
break;
endswitch;
Changer la variable $ template
à l'aide de $ this- > template
dans le constructeur interrompt le Template_Controller:
Erreur fatale: appel d'une fonction membre render () sur un non-objet
Je dois définir le nom de fichier du modèle en fonction d'une variable définie dans le constructeur, ou peut-être extrait d'une bibliothèque externe.
Des idées pour rendre cela possible?
La solution
ce lien peut avoir la réponse:
http://stii.co.za/ php / overriding-default-template-in-kohana-php /
lancez simplement le constructeur de votre modèle comme ceci:
public function __construct()
{
$this->template = 'foobar';
parent::__construct();
}
Autres conseils
Je le fais comme ça:
public function action_myaction()
{
// template
$this->template = "template/overlay";
parent::before();
// display
$this->template->title = 'My Action';
$this->template->content = View::factory('myaction')
}
Plus d'informations ici: http://www.workinprogress.ca/kohana32/