这是我的第一个 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>
。
所以看起来它做的一切都是正确的。我已经确保 $psa 从函数返回时是一个有效值embedPsaAction
,并且它似乎完全按照应有的方式加载模板,但变量没有被公开。