Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/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
Typo3 在部分路径内使用ViewHelper_Typo3_Fluid_Typo3 6.1.x_Viewhelper - Fatal编程技术网

Typo3 在部分路径内使用ViewHelper

Typo3 在部分路径内使用ViewHelper,typo3,fluid,typo3-6.1.x,viewhelper,Typo3,Fluid,Typo3 6.1.x,Viewhelper,我正在开发一个新的扩展,我的模型具有属性“type”,它可以从TCA表单中获取不同的字符串。仅限字符串! 模板应加载的分部的名称位于模型的“type”属性中。所以我的问题来了。由于TYPO3 4.7.x,fluid的.html文件名必须以大写字母开头。在“type”属性中,应加载的分部的名称始终为小写。为此,我编写了一个仅包含以下方法的简单视图帮助器: public function render($string) { return ucfirst($string); } 在我的模板

我正在开发一个新的扩展,我的模型具有属性“type”,它可以从TCA表单中获取不同的字符串。仅限字符串! 模板应加载的分部的名称位于模型的“type”属性中。所以我的问题来了。由于TYPO3 4.7.x,fluid的.html文件名必须以大写字母开头。在“type”属性中,应加载的分部的名称始终为小写。为此,我编写了一个仅包含以下方法的简单视图帮助器:

public function render($string) {

    return ucfirst($string);
}
在我的模板中,我尝试使用此视图辅助对象作为局部视图的路径:

{namespace vh=Tx_MyExtension_ViewHelpers}
<f:for each="{obj.subObjects}" as="sub">
    <f:render partial="OtherObject/{vh:String.UpperFirstCharacter(string:'{sub.type}')}" arguments="{sub:sub}" />
</f:for>

没有什么可以挽回的。如果我只输出{sub.type},它会以小写形式向我显示所需的字符串。

显然,您的ViewHelper没有执行您希望它执行的操作

首先,ViewHelper名称应使用小写字母书写

其次,不需要将sub.type放在大括号中:

此语法

{vh:string.upperFirstCharacter(string:sub.type)}
。。。应该足够了

流体随后将查找名为的ViewHelper

Tx_MyExtension_ViewHelpers_String_UpperFirstCharacter
或名称空间

\My\Extension\ViewHelpers\String\UpperFirstCharacter

请检查情况是否如此。

因此我发现了问题。Fluid无法处理名称空间。首先,我的ViewHelper如下所示:

<php
namespace TYPO3\MyExtension\ViewHelpers\String;
class UpperFirstCharacterViewHelper ...

在这条评论的顶部,您可以看到我的ViewHelper在名称空间中的外观。

不幸的是,这没有改变我的前端输出。即使我像这样把一个测试字符串放入其中:{vh:string.upperFirstCharacter(string:example)}请发布您的整个ViewHelper代码。它是否输出任何内容(例如,如果添加了return'TEST';)?
<php
namespace TYPO3\MyExtension\ViewHelpers\String;
class UpperFirstCharacterViewHelper ...
<php
class Tx_MyExtension_ViewHelpers_String_UpperFirstCharacterViewHelper ...
{namespace vh=TYPO3\MyExtension\ViewHelpers}