簡體   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