1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
AtLeastOneNotEmptyValidator.php
См. документацию.
1
<?php
2
3
declare(strict_types=1);
4
5
namespace
Bitrix\Main\Validation\Validator
;
6
7
use ArrayAccess;
8
use
Bitrix\Main\Localization\LocalizableMessage
;
9
use
Bitrix\Main\Validation\ValidationError
;
10
use
Bitrix\Main\Validation\ValidationResult
;
11
12
class
AtLeastOneNotEmptyValidator
implements
ValidatorInterface
13
{
14
public
function
__construct
(
15
private
readonly
bool
$allowZero =
false
,
16
private
readonly
bool
$allowEmptyString =
false
,
17
)
18
{
19
}
20
21
public
function
validate
(mixed $value):
ValidationResult
22
{
23
$result
=
new
ValidationResult
();
24
25
if
(!is_array($value) && !is_iterable($value) && !($value instanceof ArrayAccess))
26
{
27
$result
->addError(
new
ValidationError
(
28
new
LocalizableMessage
(
'MAIN_VALIDATION_AT_AT_LEAST_ONE_PROPERTY_NOT_EMPTY_UNSUPPORTED_TYPE'
),
29
failedValidator: $this
30
));
31
32
return
$result
;
33
}
34
35
$allEmpty =
true
;
36
foreach
($value as $item)
37
{
38
if
(!empty($item))
39
{
40
$allEmpty =
false
;
41
42
break
;
43
}
44
45
if
($this->allowZero && 0 === $item)
46
{
47
$allEmpty =
false
;
48
49
break
;
50
}
51
52
if
($this->allowEmptyString &&
''
=== $item)
53
{
54
$allEmpty =
false
;
55
56
break
;
57
}
58
}
59
60
if
($allEmpty)
61
{
62
$result
->addError(
new
ValidationError
(
63
new
LocalizableMessage
(
'MAIN_VALIDATION_AT_LEAST_ONE_PROPERTY_NOT_EMPTY_ALL_EMPTY'
),
64
failedValidator: $this
65
));
66
}
67
68
return
$result
;
69
}
70
}
Bitrix\Main\Localization\LocalizableMessage
Определения
localizablemessage.php:18
Bitrix\Main\Validation\ValidationError
Определения
ValidationError.php:11
Bitrix\Main\Validation\ValidationResult
Определения
ValidationResult.php:10
Bitrix\Main\Validation\Validator\AtLeastOneNotEmptyValidator
Определения
AtLeastOneNotEmptyValidator.php:13
Bitrix\Main\Validation\Validator\AtLeastOneNotEmptyValidator\__construct
__construct(private readonly bool $allowZero=false, private readonly bool $allowEmptyString=false,)
Определения
AtLeastOneNotEmptyValidator.php:14
Bitrix\Main\Validation\Validator\AtLeastOneNotEmptyValidator\validate
validate(mixed $value)
Определения
AtLeastOneNotEmptyValidator.php:21
$result
$result
Определения
get_property_values.php:14
Bitrix\Main\Validation\Validator\ValidatorInterface
Определения
ValidatorInterface.php:10
Bitrix\Main\Validation\Validator
Определения
AtLeastOneNotEmptyValidator.php:5
bitrix
modules
main
lib
Validation
Validator
AtLeastOneNotEmptyValidator.php
Создано системой
1.14.0