Как проверить поле на уникальность ?

Аватар пользователя albabosh albabosh 28 февраля 2016 в 12:27

При сохранении материала необходимо проверить 1 поле на уникальность средствами Rules, если поле не уникально - материал не сохранять, как сделать ?

0 Thanks

Комментарии

Аватар пользователя albabosh albabosh 28 февраля 2016 в 13:31

К сожалению uniquefield под восьмерку нет, а fieldvalidation не проверяет на уникальность, поэтому нужен вариант с рулесами.

Аватар пользователя Ветер Ветер 29 февраля 2016 в 12:22
albabosh wrote:

а fieldvalidation не проверяет на уникальность,

Почему не проверяет? Вроде как есть такая проверка

Аватар пользователя g78knl6cvxf0 g78knl6cvxf0 29 февраля 2016 в 18:22
1

field validation проверяет на уникальность прекрасно, но есть одна загвоздка, его альфа версия, выпущенная в 2012, сейчас не совсем подходит. Скажем так, даже инфо-файл не yml. Поэтому что именно проверял @albabosh - интрига, но то, что это не помогает с проверкой уникальности - неудивительно :)

Для 8-ки вообще валидация полей стала задаваться на более низком уровне и через Entity API. Вот, может пригодиться:

<?php
/**
 * Implements hook_entity_bundle_field_info_alter.
 */
function MODULE_entity_bundle_field_info_alter(&$fields, \Drupal\Core\Entity\EntityTypeInterface $entity_type$bundle) {

  if (

$entity_type->id() == 'node' && $bundle == 'article') {
    
$fields['field_test1']->addConstraint('UniqueField');
  }
}
?>