繁体   English   中英

动作块模板中的未定义变量

[英]Undefined variable in actionblock template

这是我的第一个SymfonyCMF应用程序,所以请耐心等待,我可能会从根本上误解一些概念。

我有一个ActionBlock( /cms/content/most-recent-psa ),具有FooCmsBundle:Psa:embedPsa

我的嵌入函数如下所示:

class PsaController extends Controller {

    /**
     * @Template()
     */
    public function embedPsaAction() {
        //... figure out which PSA needs to be displayed and set it to $psa

        return array('page' => $psa);
    }
}

我使用以下代码将其嵌入到Twig模板中: {{ sonata_block_render({"name": "/cms/content/most-recent-psa"}) }}

当我将该模板嵌入到页面上时,出现此异常: Variable "psa" does not exist in /var/www/peacefund-cms/src/Foo/CmsBundle/Resources/views/Psa/embedPsa.html.twig at line 6 ,这只是一个简单的输出: <h2>{{ psa.title | raw }}</h2> <h2>{{ psa.title | raw }}</h2>

因此,看起来一切正常。 我已经确保$ psa从embedPsaAction函数返回时是一个有效值,并且看起来它完全按原样加载了模板,但是未公开该变量。

如果要使用名为“ psa”的变量,则必须在控制器中提供此确切名称。 在这里,您的树枝页面具有“ page”变量。 而树枝的page变量等于控制器的$ psa。

在您的控制器中,您必须这样做:

array("variableNameForTwig1" => $variableController1, "variableNameForTwig2" => $variableController2 )

然后,您可以执行以下操作:

{{variableNameFortwig1.attribute}}
{{variableNameFortwig2.attribute}}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM