У меня эта задача возникла при работе с формами, где формы содержат поля ‘#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.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Март 20, 2019 г.
При возникновении ошибок, во время проверки формы друпал выполняет две вещи, которые отражаются на фронт-энд - добавляет сообщение об ошибке в стек сообщений и маркирует классом error поле, содержащее ошибку.
Если форма находится далеко от места вывода ...
Читать
Июнь 19, 2026 г.
Когда прав очень много, не удобно смотреть через админку, что же там выдано в роли. Особенно, если роль точечно добавляет несколько разрешений.
Вот небольшой спиппет кода, который выводит список разрешений (permissions) для указанной роли.
[crayon-6a7a73111356f408495746/] ...
Читать
Май 28, 2021 г.
Небольшой сниппет (snippet) по удалению сущностей nodequeue из кода. Может быть полезно при миграции данных.
Удобно оперировать с машинным именем нод-кью, но функция удаления требует ID, потому код обычно обретает следующие формы:
[crayon-6a7a73111362b817602484/] ...
Читать
Август 29, 2022 г.
При обновлении модуля s3fs с ветки 7.x-2.x -> 7.x->3.x друпалу не удаётся найти указанный класс. Все необходимые шаги по апгрейду сделаны, как описано в readme.txt модуля.
Это проблема инициализации библиотеки awssdk в s3fs_libraries_info(). Drupal ...
Читать