【问题标题】:Pass array from template to partial将数组从模板传递到部分
【发布时间】:2014-05-23 08:06:36
【问题描述】:

我的 showAction() 看起来像这样:

public function showAction() {
        $form = $this->formRepository->findByUid($this->settings['form']);
        $arguments = $this->request->getArguments();
        $this->view->assignMultiple(
            array(
                'form' => $form,
                'arguments' => $arguments
            )
        );
    }

在此操作的模板中,我尝试为我的所有部分提供“参数”:

<f:render partial="FormElement/{formElement.type}" arguments="{formElement:formElement, arguments:arguments}" />

模板中 {arguments} 的调试告诉我一切都很好。如果我在部分中调试 {arguments},它会返回 NULL。即使我将所有参数都提供给部分 (arguments="{_all}"),在部分内调试 {arguments} 也会返回 NULL。

其他一切正常!

【问题讨论】:

  • 我创建了一个动作和一个带有部分的模板,但无法重现该问题。如果你只用一个简单的字符串而不是 $this->request->getArguments() 来分配“参数”怎么办。字符串是否通过部分?您是否尝试将变量“arguments”重命名为“myargs”之类的其他名称?
  • 在 assignMultiple() 中我将其更改为:'humpa' => 'WHATS WRONG?'。还通过为部分提供他们的论点(arguments="{formElement:formElement, humpa:humpa}")来改变反对“humpa”的“论点”。 {humpa} 在部分返回 NULL 中的调试。

标签: templates typo3 partial fluid typo3-6.1.x


【解决方案1】:

您的代码对我来说看起来不错。您可能需要检查 php.ini 文件中的以下设置“max_input_nesting_level”。有时,如果此参数设置为较低的值并且您处理复杂的对象,您会遇到此限制。您可能希望将其更改为 128 甚至 256。(更改 php.ini 后不要忘记重新启动 apache)

【讨论】:

  • 无法更改值(当前为 64)。我在托管服务器上工作。但也给出一个字符串而不是参数数组给了我 NULL。
  • 所以我知道我可以通过 .htaccess 更改值...我将其更改为 256 的值(通过 phpinfo() 检查)但遗憾的是这不是答案。跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-21
  • 2017-07-05
  • 2022-01-12
相关资源
最近更新 更多