Impostazione dinamica del nome del modello Kohana
Domanda
Non riesco a impostare dinamicamente la variabile $ template
di un sito costruito su Kohana.
Se estendo la classe Template_Controller, posso impostare il nome del modello in questo modo:
public $template = 'template_file_name';
Ma non posso impostarlo in modo dinamico come:
public $template = $this->setTemplate();
o
switch($var):
default:
public $template = 'filename';
break;
endswitch;
La modifica della variabile $ template
usando $ this- > template
nel costruttore interrompe in qualche modo Template_Controller:
Errore irreversibile: chiamata a una funzione membro render () su un non oggetto
Devo impostare il nome file del modello basato su una variabile impostata nel costruttore, o forse estratto da una libreria esterna.
Qualche idea su come renderlo possibile?
Soluzione
questo link può avere la risposta:
http://stii.co.za/ php / sovrascrivendo-default-template-in-kohana-php /
esegui il costruttore del modello come questo:
public function __construct()
{
$this->template = 'foobar';
parent::__construct();
}
Altri suggerimenti
Lo faccio in questo modo:
public function action_myaction()
{
// template
$this->template = "template/overlay";
parent::before();
// display
$this->template->title = 'My Action';
$this->template->content = View::factory('myaction')
}
Ulteriori informazioni qui: http://www.workinprogress.ca/kohana32/