Phalcon模板“Undefined variable”(设置变量)

时间:2016-04-14 06:28:02

标签: php phalcon

我想用控制器中的变量显示模板文件(ajax include)。 我想创建一个简单的shoutbox。

开发环境:

PHP版本5.6.19(xampp)

Phalcon 2.1.0r(php c-ext)

Windows 10

IDE Netbeans

这是包含部分:(它有效)

$("#shoutbox_messages").load("{{ static_url("shoutbox/getshouts") }}");

这是我的控制器功能(app / controllers / ShoutboxController.php):

    public function getshoutsAction() {

    $shouts = $this->di->getModelsManager()
            ->createBuilder()
            ->columns(array('Shouts.*', 'Users.name'))
            ->from('Shouts')
            ->join('Users')
            ->orderBy('Shouts.created_at DESC')
            ->getQuery()
            ->execute()
            ->toArray();


    $this->view->setRenderLevel(\Phalcon\Mvc\View::LEVEL_LAYOUT);


    $this->view->setVar("shouts", $shouts);

    }

这是我的观看文件(app / views / shoutbox / getshouts.twig):

{% for shout in shouts %}



<div class="panel panel-default">
    <div class="panel-heading">
        <h3 class="panel-title">{{ shout.name }}</h3>
    </div>
    <div class="panel-body">
        {{ shout.shouts.text }} 
    </div>
</div>

{%endfor%}

(twig文件扩展名设置为伏特引擎文件扩展名。)

此视图是布局文件的一部分(包含在主布局中):

{# Shoutbox #}

<div id="flash_sb"></div>
{% include "shoutbox/shoutform.twig" %}

<hr/>
<div id="shoutbox_messages">
{% include "shoutbox/getshouts.twig" %}

</div>

我不知道为什么在包含此文件时出现错误:

注意:未定义的变量:shouts(在app / views / shoutbox / getshouts.twig中)

当我只使用控制器/动作(http://myurl/shoutbox/getshouts)时,它可以工作。我可以访问变量“shouts”。

我不明白为什么当我使用http://myurl/shoutbox/getshouts时这是有效的,但在布局中没有var“shouts”。

如果您需要更多信息请告诉我。

我希望有人可以告诉我什么是错的。

1 个答案:

答案 0 :(得分:0)

您可以使用with来传递变量:

{% include "shoutbox/getshouts.twig" with ['shouts': shouts] %}