Files
iTop/sources/Form/Validator/SelectObjectValidator.php

47 lines
983 B
PHP

<?php
/*
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
namespace Combodo\iTop\Form\Validator;
use Combodo\iTop\Form\Helper\FieldHelper;
use DBSearch;
use utils;
class SelectObjectValidator extends AbstractValidator
{
public const VALIDATOR_NAME = 'select_object_validator';
/** @var \DBSearch $oSearch */
private $oSearch;
public function __construct(DBSearch $oSearch)
{
parent::__construct();
$this->oSearch = $oSearch;
}
public function Validate($value): array
{
if (utils::IsNullOrEmptyString($value)) {
return [];
}
if (($value === 0) || ($value === '0')) {
return [];
}
$oSetForExistingCurrentValue = FieldHelper::GetObjectsSetFromSearchAndCurrentValueId($this->oSearch, $value);
$iObjectsCount = $oSetForExistingCurrentValue->CountWithLimit(1);
if ($iObjectsCount === 0) {
return ["Value $value does not match the corresponding filter set"];
}
return [];
}
}