Templates 如何为Kohana 3中控制器内部的每个视图使用不同的模板?
我有一个模板控制器(ex.Controller\u DefaultTemplate),其他人(ex.Controller\u Admin)正在扩展它。在tutiorials(例如此处)中,他们在Controller_DefaultTemplate中这样做:Templates 如何为Kohana 3中控制器内部的每个视图使用不同的模板?,templates,controller,kohana-3,Templates,Controller,Kohana 3,我有一个模板控制器(ex.Controller\u DefaultTemplate),其他人(ex.Controller\u Admin)正在扩展它。在tutiorials(例如此处)中,他们在Controller_DefaultTemplate中这样做: public$template='admin/index' 但我需要不同的意见,为不同的行动内 class Controller_Admin extends Controller_DefaultTemplate { funct
public$template='admin/index'代码>
但我需要不同的意见,为不同的行动内
class Controller_Admin extends Controller_DefaultTemplate {
function action_material(){
$template = 'admin/material';
}
function action_newsedit(){
$template = 'admin/newsedit';
}
。。。等等
可能吗?当然可以,就像这样:
public function action_newsedit()
{
$this->template = new View('admin/newsedit');
}
模板是在控制器的构造函数中创建的,因此您只需在操作中覆盖它。另一种方法是使用set\u filename()
方法设置视图的文件名。使用zombor的样式,您将丢失为$this->template
设置的所有变量
public function action_newsedit()
{
// note that $this->template is already View object as we are in Controller_Template
$this->template->set_filename('admin/newsedit');
}
模板是所有视图的包装器。在模板中,您将拥有
,然后在操作中,您只需调用视图,将其放置在该模板中<代码>$this->template->content=View::factory('page')
据我所知,这就是它的工作原理。在这两种情况下,我都会遇到Kohana\u View\u异常[0]:无法找到请求的视图模板
error您需要一个已经存在的默认模板(before()仍然需要运行并生成模板文件)。在默认情况下,它是views/template.php