我似乎无法动态设置在Kohana上构建的网站的$template
变量。
如果我扩展Template_Controller类,我可以像这样设置模板名称:
public $template = 'template_file_name';
但是我无法动态设置它:
public $template = $this->setTemplate();
或
switch($var):
default:
public $template = 'filename';
break;
endswitch;
在构造函数中使用$template
更改$this->template
变量会以某种方式破坏Template_Controller:
致命错误:在非对象上调用成员函数render()
我需要根据构造函数中设置的变量设置模板文件名,或者从外部库中提取。
任何想法如何使这成为可能?
答案 0 :(得分:8)
此链接可能有答案:
http://stii.co.za/php/overriding-default-template-in-kohana-php/
只需运行你的模板构造函数:
public function __construct()
{
$this->template = 'foobar';
parent::__construct();
}
答案 1 :(得分:5)
我这样做:
public function action_myaction()
{
// template
$this->template = "template/overlay";
parent::before();
// display
$this->template->title = 'My Action';
$this->template->content = View::factory('myaction')
}