eZ\Publish\Core\FieldType\Selection\Type::validate PHP Method

validate() public method

Does not use validators.
public validate ( eZ\Publish\API\Repository\Values\ContentType\FieldDefinition $fieldDefinition, eZ\Publish\SPI\FieldType\Value $fieldValue ) : eZ\Publish\SPI\FieldType\ValidationError[]
$fieldDefinition eZ\Publish\API\Repository\Values\ContentType\FieldDefinition The field definition of the field
$fieldValue eZ\Publish\SPI\FieldType\Value The field value for which an action is performed
return eZ\Publish\SPI\FieldType\ValidationError[]
    public function validate(FieldDefinition $fieldDefinition, SPIValue $fieldValue)
    {
        $validationErrors = array();
        if ($this->isEmptyValue($fieldValue)) {
            return $validationErrors;
        }
        $fieldSettings = $fieldDefinition->getFieldSettings();
        if ((!isset($fieldSettings['isMultiple']) || $fieldSettings['isMultiple'] === false) && count($fieldValue->selection) > 1) {
            $validationErrors[] = new ValidationError('Field definition does not allow multiple options to be selected.', null, array(), 'selection');
        }
        foreach ($fieldValue->selection as $optionIndex) {
            if (!isset($fieldSettings['options'][$optionIndex])) {
                $validationErrors[] = new ValidationError('Option with index %index% does not exist in the field definition.', null, array('%index%' => $optionIndex), 'selection');
            }
        }
        return $validationErrors;
    }