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 by condition再添加一个参数_Typo3_Fluid - Fatal编程技术网

Typo3 为流体viewHelper by condition再添加一个参数

Typo3 为流体viewHelper by condition再添加一个参数,typo3,fluid,Typo3,Fluid,在我的流体模板中,我有: <f:form.textfield id="{propertyName}" property="{propertyName}" value="{value}" placeholder="" class="form-control" /> 我想为“值”添加条件。比如: <f:form.textfield id="{propertyName}" property="{propertyName}"

在我的流体模板中,我有:

<f:form.textfield
    id="{propertyName}"
    property="{propertyName}"
    value="{value}"
    placeholder=""
    class="form-control"
/>

我想为“值”添加条件。比如:

<f:form.textfield
    id="{propertyName}"
    property="{propertyName}"

    <f:if condition="{value}"> value="{value}" <f:if>

    placeholder=""
    class="form-control"
/>

现在我正在使用变通方法

<f:if condition="{value}">
    <f:then>
        <f:form.textfield id="{propertyName}" property="{propertyName}" value="{value}" placeholder="" class="form-control" />
    </f:then>
    <f:else>
        <f:form.textfield id="{propertyName}" property="{propertyName}" placeholder="" class="form-control" />
    </f:else>
</f:if>


但是我想避免双重编码。

我认为这样做是不可能的

可能的解决方案是用户定义的ViewHelper(不包括原始f:form.textfield)


我认为以这种方式是不可能的

可能的解决方案是用户定义的ViewHelper(不包括原始f:form.textfield)


不可能将ViewHelper嵌套在其XML表示法中。但是,至少在一定程度上,您可以使用内联表示法:

<f:form.textfield
    value="{f:if(condition: '<your-condition>', then: value)}" />


在一个简单的情况下,当属性为空时,您只想省略
value
属性,只要始终传递
value=“{value}”
就足够了。当该值为
null
时,该属性将不包括在呈现的
标记中。

不可能在其XML表示法中嵌套ViewHelper。但是,至少在一定程度上,您可以使用内联表示法:

<f:form.textfield
    value="{f:if(condition: '<your-condition>', then: value)}" />


在一个简单的情况下,当属性为空时,您只想省略
value
属性,只要始终传递
value=“{value}”
就足够了。当值为
null
时,属性将不包括在呈现的
标记中。

您可以这样做:

<f:form.textfield 
    name="{data.name -> f:format.urlencode()}"   
    type="{f:if(then: '{data.inputtyp}', else: 'text', condition: '{data.inputtyp}')}"
    class="{f:if(then: '{data.class}', else: '', condition: '{data.class}')}"
    value="{f:if(then: '{data.populate}', else: '', condition: '{data.populate}')}"
    placeholder="{f:if(then: '{data.placeholder}', else: '', condition: '{data.placeholder}')}" />

您可以这样做:

<f:form.textfield 
    name="{data.name -> f:format.urlencode()}"   
    type="{f:if(then: '{data.inputtyp}', else: 'text', condition: '{data.inputtyp}')}"
    class="{f:if(then: '{data.class}', else: '', condition: '{data.class}')}"
    value="{f:if(then: '{data.populate}', else: '', condition: '{data.populate}')}"
    placeholder="{f:if(then: '{data.placeholder}', else: '', condition: '{data.placeholder}')}" />


在这种情况下,属性将始终存在(无论值是否为空)。我需要把它完全藏起来condition@Respant啊,对不起,我已经注意到您明确要求使用“value”标记。这就是Robert G,对了,这在内联表示法中是不可能的。但是对于值标记:在此处添加emtpy值是有效的。在这种情况下,属性将始终存在(无论是否为空值)。我需要把它完全藏起来condition@Respant啊,对不起,我已经注意到您明确要求使用“value”标记。这就是Robert G,对了,这在内联表示法中是不可能的。但是对于value标签:在这里添加emtpy值是有效的。