Рейтинг:2

Programmatically find out field name of an Id-field

флаг cn

Depending on the type of entity, it is either nid/vid/uid and possibly other. It is nice to have an ->id() method which allows you to work with data in an uniform fashion without relying on those details, but there are quite some use-cases, where I am running into troubles.

Just an example, getting list of revision ids for an generic entity seems not possible without knowing the name of the id-field.

$entityTypeId = $entity->getEntityTypeId();
$entityId = $entity->id();

$typeStorage = \Drupal::entityTypeManager()->getStorage($entityTypeId);

$query = $typeStorage->getQuery();
$query->allRevisions();
$query->condition("??????", $entityId);
флаг cn
Пока не могу проверить, но попробуйте `$id_field = $entity->getKey('id');`
Рейтинг:3
флаг in

EntityType предоставляет функцию для получения ключей поля: EntityType:: getKeys. Результатом является массив и я бы key определяет имя свойства основного поля.

Видеть https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Entity%21EntityType.php/function/EntityType%3A%3AgetKeys

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

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