无法在浏览器中获取动态视图以进行更新

时间:2012-03-23 19:01:45

标签: views kohana

我一直试图在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);

如何强制更新视图中的特定视图,或者如何替换视图?

3 个答案:

答案 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)在禁用某些内容之后工作。

感谢大家的帮助,我们非常感谢您努力修复它。