Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates 在Symfony中,如何在打开输出转义的情况下轻松地将所有变量从模板传递到部分?_Templates_Symfony1_Partial_Parameter Passing - Fatal编程技术网

Templates 在Symfony中,如何在打开输出转义的情况下轻松地将所有变量从模板传递到部分?

Templates 在Symfony中,如何在打开输出转义的情况下轻松地将所有变量从模板传递到部分?,templates,symfony1,partial,parameter-passing,Templates,Symfony1,Partial,Parameter Passing,当我打开输出转义时,有没有一种简单的方法可以将模板文件可以访问的所有变量传递到分部上 我倾向于创建一个模板文件,然后在某个时候将其重构成一个分部文件,似乎有一种简单的方法可以将所有相同的变量从模板传递到分部文件并使用它来完成 我打开了输出转义,不能只传入$sf\u数据 看起来从另一个分部中调用分部非常简单…只需传入变量$vars 编辑: 这是关于Symfony 1.2+正在使用哪个版本的Symfony symfony 1.1中的新提示:代替 生成一个模板后,可以执行一个操作 返回部分或组件。这个

当我打开输出转义时,有没有一种简单的方法可以将模板文件可以访问的所有变量传递到分部上

我倾向于创建一个模板文件,然后在某个时候将其重构成一个分部文件,似乎有一种简单的方法可以将所有相同的变量从模板传递到分部文件并使用它来完成

我打开了输出转义,不能只传入$sf\u数据

看起来从另一个分部中调用分部非常简单…只需传入变量$vars

编辑:
这是关于Symfony 1.2+

正在使用哪个版本的Symfony

symfony 1.1中的新提示:代替 生成一个模板后,可以执行一个操作 返回部分或组件。这个 renderPartial()和renderComponent() 行动班的方法 代码的可重用性。此外,他们 利用缓存 partials的能力(参见第章 12). 中定义的变量 操作将自动传递给 部分/组件,除非您 定义的关联数组 变量作为 方法

所以如果你不通过include_partial()的第二个参数,我想你就完了

编辑:完全错误。让我们看看renderPartial()中的操作:有一个对getPartial()的调用,它执行以下操作:

$vars = null !== $vars ? $vars : $this->varHolder->getAll();
现在,您可以使用操作中的所有变量创建一个变量:

  public function executeStackOverflow()
  {
    $this->testVar = 42;
    $this->allVars = $this->varHolder->getAll();
  }

现在可以调用partials并将$allVars作为第二个参数。授予对所有变量的访问权。

但是你能在一个动作中呈现一个变量的部分,然后在模板文件中显示该变量吗?我想是的,但为什么要这样做呢?我有一个动作执行一个模板,该模板有几个部分。如果你使用renderPartial(),它只渲染部分而不是模板。好吧,似乎我混淆了很多东西,我想我给你的提示可以直接在视图中使用,但是。。。不可以。但是您仍然可以在renderPartial()中找到这段代码。我要编辑我的答案。酷,我只需要调用$sf_data->getRaw('allVars'),因为我已经打开了输出转义。