[英]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.