У меня эта задача возникла при работе с формами, где формы содержат поля ‘#entity’ и ‘#entity_type’. Нужно было найти универсальный способ прочитать ID объекта, т.к. для каждого объекта имя этого поля может отличаться (для node — nid, для file — fid и т.п.).
К нашей удаче, entity API содержит специальные методы, для получения названия primary key поля.
Применяя эти методы к значениям массива-описателя $form, которые передаются в callback функции form API, получим следующий шаблон кода:
|
|
$entity_wrapper = entity_metadata_wrapper($form['#entity_type'], $form['#entity']); // имя ключевого поля $primaryKeyField = $entity_wrapper->entityKey('id'); // значение ключа $entity_id = $entity_wrapper->$primaryKeyField->value(); |
Drupal 7
Данная запись опубликована в 06.04.2021 20:59 и размещена в рубрике Drupal.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Май 28, 2021 г.
Небольшой сниппет (snippet) по удалению сущностей nodequeue из кода. Может быть полезно при миграции данных.
Удобно оперировать с машинным именем нод-кью, но функция удаления требует ID, потому код обычно обретает следующие формы:
[crayon-6a1edbcc4f2c7543857830/] ...
Читать
Март 15, 2026 г.
Drupal 7 предлагает мощный Form API для построения форм. Однако при работе с HTML5‑атрибутами можно столкнуться с неожиданным ограничением: если вы попытаетесь задать тип поля number, email или tel стандартным способом, Drupal проигнорирует ваше значение ...
Читать
Февраль 5, 2020 г.
Drupal views позволяют сконфигурировать сообщение на случай если результат запроса пуст и нельзя срендерить какой либо контент для данного представления.
Данная опция находится во вкладке 'advanced' вашего представления. Но в данной статье я покажу ...
Читать
Ноябрь 15, 2019 г.
Типичная проблема при использовании модуля views - как вывести результат группировки, т.е. столбец вроде COUNT(*).
Это можно сделать штатными средствами ...
Читать