我似乎无法动态设置在Kohana上构建的网站的 $ template 变量。

如果我扩展Template_Controller类,我可以像这样设置模板名称:

public $template = 'template_file_name';

但是我无法动态设置它:

public $template = $this->setTemplate();

switch($var):
    default:
       public $template = 'filename';
       break;
endswitch;

在构造函数中使用 $ this-> template 更改 $ template 变量会以某种方式破坏Template_Controller:

  

致命错误:在非对象上调用成员函数render()

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

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

有帮助吗?

解决方案

此链接可能有答案:

http://stii.co.za/ PHP /重写 - 缺省 - 模板在-Kohana的-PHP /

只需运行你的模板构造函数:

public function __construct()
    {
        $this->template = 'foobar';
        parent::__construct();
    }

其他提示

我这样做:

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/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top