当我有输出转义时,是否有一种简单的方法可以将模板文件可以访问的所有变量传递给部分?
我倾向于创建一个模板文件,然后在某个时候将内容重构为部分,似乎有一种简单的方法可以将所有相同的变量从模板传递到部分并完成它。
我有输出转义,我不能只传入$sf_data。
看起来从另一个部分调用一个部分非常简单......只需传入变量 $vars。
编辑: 这是关于 Symfony 1.2+
当我有输出转义时,是否有一种简单的方法可以将模板文件可以访问的所有变量传递给部分?
我倾向于创建一个模板文件,然后在某个时候将内容重构为部分,似乎有一种简单的方法可以将所有相同的变量从模板传递到部分并完成它。
我有输出转义,我不能只传入$sf_data。
看起来从另一个部分调用一个部分非常简单......只需传入变量 $vars。
编辑: 这是关于 Symfony 1.2+
使用的是哪个版本的 Symfony?
提示 symfony 1.1 中的新功能:操作可以返回部分或组件,而不是生成模板。action 类的 renderPartial() 和 renderComponent() 方法提高了代码的可重用性。此外,它们还利用了部分缓存的能力(见第 12 章)。动作中定义的变量将自动传递给部分/组件,除非您将变量的关联数组定义为方法的第二个参数。
所以如果你只是不传递 include_partial() 的第二个参数,我想你已经完成了......
编辑:完全错误。让我们看看在 renderPartial() 中做了什么:调用 getPartial(),它执行以下操作:
$vars = null !== $vars ? $vars : $this->varHolder->getAll();
所以现在,您可以在操作中创建一个包含所有变量的变量:
public function executeStackOverflow()
{
$this->testVar = 42;
$this->allVars = $this->varHolder->getAll();
}
现在您可以调用您的部分并将它们 $allVars 作为第二个参数。授予所有变量的访问权限。