2

我似乎无法$template动态设置基于 Kohana 构建的站点的变量。

如果我扩展 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()

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

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

4

2 回答 2

8

这个链接可能有答案:

http://stii.co.za/php/overriding-default-template-in-kohana-php/

只需像这样运行您的模板构造函数:

public function __construct()
    {
        $this->template = 'foobar';
        parent::__construct();
    }
于 2009-10-28T13:21:14.823 回答
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/

于 2011-11-24T17:12:19.337 回答