Definir o nome do modelo Kohana dinamicamente
Pergunta
Eu não consigo definir a variável $template
dinamicamente de um site construído em Kohana.
Se eu estender a classe Template_Controller, posso definir o nome do modelo como este:
public $template = 'template_file_name';
Mas eu não posso defini-lo de forma dinâmica como:
public $template = $this->setTemplate();
ou
switch($var):
default:
public $template = 'filename';
break;
endswitch;
Alterar a variável $template
usando $this->template
nos intervalos do construtor do Template_Controller de alguma forma:
Erro fatal: Chamada para uma função membro render () em um não-objeto
Eu preciso definir o nome do arquivo de modelo com base em um conjunto de variáveis ??no construtor, ou talvez puxado de uma biblioteca externa.
Todas as idéias como fazer isso possível?
Solução
este link pode ter a resposta:
http://stii.co.za/ php / substituindo-default-template-in-kohana-php /
apenas executar seu construtor modelo como este:
public function __construct()
{
$this->template = 'foobar';
parent::__construct();
}
Outras dicas
Eu faço isso como este:
public function action_myaction()
{
// template
$this->template = "template/overlay";
parent::before();
// display
$this->template->title = 'My Action';
$this->template->content = View::factory('myaction')
}
Mais informações aqui: http://www.workinprogress.ca/kohana32/