我一直试图在Kohana 3.2中使用动态视图但没有成功。我正在使用以下布局视图,其中包含三个视图(元,内容和页脚)。
视图/布局:
<html>
<head>
<?php echo $meta ?>
</head>
<body>
<?php echo $content ?>
<?php echo $footer ?>
</body>
<html>
我能够最初渲染所有三个视图没有问题($ meta视图中有一组默认值),但稍后我在流程中分配并将变量传递给新的$ meta视图,但是视图不会在我的浏览器中更新。我启用了特定视图的日志记录(在传递变量之后),看起来一切正常。
// Passing variables to view and rendering view in controller/layout
$this->template->meta = View::factory('meta');
$this->template->meta->url = $this->template->art->url;
$this->template->meta->name = $this->template->art->name;
$this->template->meta->image = $this->template->art->image;
$this->template->meta->about = $this->template->art->about;
$this->response->body($this->template->meta);
Kohana::$log->add(Log::INFO, 'TEMPLATE VALUE: ' . $this->template);
如何强制更新视图中的特定视图,或者如何替换视图?
答案 0 :(得分:0)
尝试更换:
$this->response->body($this->template->meta);
使用:
$this->response->body($this->template->meta->render());
答案 1 :(得分:0)
我假设您正在扩展Controller而不是Controller_Template,这意味着您需要告诉正文处理整个模板。将这段代码放在操作的最后,它将允许您编辑元,内容或页脚,直到您发送该命令。你可能过早地发送身体,然后试图改变它,这将是无用的。
$this->response->body($this->template);
答案 2 :(得分:0)
事实证明,控制器被另一个控制器覆盖。原来的$ this-&gt; response-&gt;正文($ this-&gt; template-&gt; meta)在禁用某些内容之后工作。
感谢大家的帮助,我们非常感谢您努力修复它。