gpt4 book ai didi

php - Typo3:如何通过属性验证覆盖默认错误消息?

转载 作者:可可西里 更新时间:2023-11-01 00:02:06 24 4
gpt4 key购买 nike

我有一个类 Publisher,我想用属性验证来验证它。但我想覆盖默认的错误消息。

这是我的 Publisher 模型的片段:

<?php
namespace Typo3\LpSurvey\Domain\Model;

use TYPO3\CMS\Extbase\DomainObject\AbstractEntity;

class Publisher extends AbstractEntity
{

/**
* salutation
*
* @var bool
* @validate NotEmpty
*/
protected $salutation;

...
}

这是我的发布者对象的一部分:

<div class="container publisher">
<div class="row">
<div class="col-sm-12">
<legend>Anrede <em class="star">*</em></legend>
// Error message output---------------------
<f:render partial="FormErrorsPublisher" arguments="{field: 'newSigil.survey.publisher.salutation'}" />
//------------------------------------------
<label class="label-radio">
<f:form.radio value="0" property="survey.publisher.salutation" />
Frau
</label>
<label class="label-radio">
<f:form.radio value="1" property="survey.publisher.salutation" />
Herr
</label>
</div>
</div>
...
</div>

这是我的 FormErrorsPublisher 部分(也是一个片段):

<f:form.validationResults for="{field}">
<f:if condition="{validationResults.flattenedErrors}">
<f:for each="{validationResults.flattenedErrors}" as="errors">
<ul class="error-field">
<f:for each="{errors}" as="error">
<li class="error">
{error}
</li>
</f:for>
</ul>
</f:for>
</f:if>
</f:form.validationResults>

现在,如果称呼字段为空,我会收到默认的 NotEmpty 错误消息,但我想覆盖它。

也许在带有错误代码的 locallang.xlf 中?

我试过这个,但没有解决方案:

<xliff version="1.0">
<file source-language="en" datatype="plaintext" original="messages" date="2016-10-06T09:49:41Z" product-name="lp_survey">
<header/>
<body>
...
<trans-unit id="survey.publisher.salutation.1221560910">
<source>Der angegebene Wert ist leer.</source>
</trans-unit>
</body>
</file>
</xliff>

有人有想法吗?

最佳答案

我通常是这样定制的:

<f:form.validationResults for="{field}">
<f:for each="{validationResults.flattenedErrors}" key="propertyPath" as="propertyErrors">
<f:for each="{propertyErrors}" as="propertyError">
<div class="form__field-error">
<f:translate key="validator.{propertyPath}.{propertyError.code}" default="{propertyError}" />
</div>
</f:for>
</f:for>
</f:form.validationResults>

然后 locallang.xlf 可以包含覆盖的验证错误消息(如果下面是 RegExp 验证器的错误代码):

<trans-unit id="validator.object.property.1221565130">
<source>Input doesn't match the regexp.</source>
</trans-unit>

上面的构造可以在没有 for 参数的情况下使用,并且功能相同。

关于php - Typo3:如何通过属性验证覆盖默认错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40399856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com