1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
uniquevalidator.php
См. документацию.
1<?php
8
9namespace Bitrix\Main\ORM\Fields\Validators;
10
11use Bitrix\Main\ORM;
12use Bitrix\Main\ORM\Query\Query;
13use Bitrix\Main\Localization\Loc;
14
15Loc::loadMessages(__FILE__);
16
18{
22 protected $errorPhraseCode = 'MAIN_ENTITY_VALIDATOR_UNIQUE';
23
24 public function validate($value, $primary, array $row, ORM\Fields\Field $field)
25 {
26 $entity = $field->getEntity();
27 $primaryNames = $entity->getPrimaryArray();
28
29 $query = new Query($entity);
30 $query->setSelect($primaryNames);
31 $query->setFilter(array('='.$field->getName() => $value));
32 $query->setLimit(2);
33 $result = $query->exec();
34
35 while ($existing = $result->fetch())
36 {
37 // check primary
38 foreach ($existing as $k => $v)
39 {
40 if (!isset($primary[$k]) || $primary[$k] != $existing[$k])
41 {
42 return $this->getErrorMessage($value, $field);
43 }
44 }
45 }
46
47 return true;
48 }
49}
validate($value, $primary, array $row, ORM\Fields\Field $field)
Определения uniquevalidator.php:24
getErrorMessage($value, ORM\Fields\Field $field, $errorPhrase=null, $additionalTemplates=null)
Определения validator.php:50
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$result
Определения get_property_values.php:14
$query
Определения get_search.php:11
$entity
Определения chain.php:3
$k
Определения template_pdf.php:567