Рейтинг:0

Пользовательское поле ссылки, сохраняющее пустые значения

флаг ph

Я создал настраиваемое поле на основе поля ссылки на объект, но сохраняемый им target_id поступает из внешней системы.

У меня есть тип поля, виджет поля и элемент автозаполнения, определенные и работающие, и правильные значения сохраняются в связанной таблице базы данных для допустимых значений.

Немного, на чем я застрял, заключается в том, что если поле оставить пустым, оно все равно сохранит запись в базе данных, но с пустым target_id. Как мне остановить это?

Вот моя реализация isEmpty(), которую я взял из определения поля EntityReference. Я предполагаю, что это виновник, но я не уверен, как это исправить:

  /**
   * {@inheritdoc}
   */
  публичная функция isEmpty() {
    $target_id = isset($this->target_id) ? $this->target_id : NULL;
    если ($ target_id !== NULL) {
      вернуть ЛОЖЬ;
    }
    вернуть ИСТИНА;
  }
флаг cn
Не могли бы вы опубликовать свою реализацию `isEmpty()`? Если у вас его нет, совместима ли базовая реализация (`EntityReferenceItem::isEmpty()`) с изменениями, которые вносит ваш класс?
Lambic avatar
флаг ph
@Клайв добавил. Я займусь отладкой в ​​понедельник, если кто-то не предложит решение за это время.
Рейтинг:0
флаг ph

пустой() был виновником здесь, по какой-то причине, которую я не совсем понимаю $this->target_id была установлена ​​пустая строка вместо NULL, поэтому изменение если ($ target_id !== NULL) чтобы просто если ($ target_id) починил это.

Спасибо @Clive за подсказку.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.