动态设置Kohana模板名称

时间:2009-10-28 04:54:56

标签: php templates kohana

我似乎无法动态设置在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()

我需要根据构造函数中设置的变量设置模板文件名,或者从外部库中提取。

任何想法如何使这成为可能?

2 个答案:

答案 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')
}

更多信息: http://www.workinprogress.ca/kohana32/