TYPO3 单选按钮验证最佳实践

TYPO3 radio button validation best practice

我有一个带有单选和普通输入字段的简单流体表单,如下所示:

<f:form action="create" name="data" object="{data}">
    <p>Wählen Sie Ihre Schulform aus:</p>
    <f:render partial="FormErrors" arguments="{field: 'data.schoolType'}" />
    <f:form.radio id="secondary-school" property="schoolType" value="secondary-school" />
    <label for="secondary-school">Gymnasium</label>
    <f:form.radio id="school" property="schoolType" value="school" />
    <label for="school">Oberschule</label>

    <label for="name">
        <f:translate key="tx_example_domain_model_school.name" />
        <span class="required">*</span>
        <f:render partial="FormErrors" arguments="{field: 'data.name'}"/>
    </label>
    <f:form.textfield property="name" />

    ...

</f:form>

现在我想验证单选按钮,因为都是初始未检查,但我不知道我使用的方式是否正确。

我正在使用如上例所示的属性并创建了以下 class:

class Data extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity {

    /**
     * schoolType
     * 
     * @var string
     * @validate \Example\Example\Domain\Validator\CustomValidator
     */
    protected $schoolType;

    /**
     * name
     * 
     * @var string
     * @validate NotEmpty
     */
    protected $name;

    irrelvant properties, setter, getter and so on ...
}

所以我使用自定义验证器来验证单选按钮,如下所示:

class CustomValidator extends \TYPO3\CMS\Extbase\Validation\Validator\AbstractValidator {

     protected $acceptsEmptyValues = FALSE;

     /**
      * Validates the radio buttons
      *
      * @param mixed $value
      * @return bool
      */
     public function isValid($value) {
         if ( !isset($value) || $value === NULL ) {
             $this->addError( 'Wählen Sie einen Schultyp aus.', time() );
             return FALSE;
         }
         return TRUE;
     }
 }

它按预期工作,但是没有更简单的方法来获得相同的解决方案吗?也许使用标准的 TYPO3 验证器?我为单选按钮使用了 属性 类型的字符串,因为我正在使用此单选按钮的值并将其存储为字符串。

欢迎提出建议和意见:)

我认为结合语言文件的 NotEmpty Validator 是一个可接受的解决方案