Рейтинг:0

Как можно программно получить ограничение пакета для поля ссылки на сущность?

флаг rs

Я работаю в контексте плагина Views. У меня есть $entity_type и $поле, как требуется во фрагменте ниже. Как программно получить ограничение пакета для поля ссылки на сущность?

/** @var Drupal\field\Entity\FieldStorageConfig $field_configuration */
$field_configuration = FieldStorageConfig::loadByName($entity_type, $field);

$field_configuration->getType() дает мне "entity_reference"

$field_configuration->getSettings()['target_type'] дает мне "taxonomy_term"

... но какие методы возвращают словарь или словари (связки), которые поле ссылки на объект ограничено (если вообще) в его конфигурации?

Рейтинг:2
флаг in

Типы, разрешенные полем ссылки на объект, хранятся в конфигурации поля (FieldConfig.php и поле.поле.* yaml), а не конфиг хранилища полей (Филдсторажеконфиг.php и поле.хранилище.* ямл).

Если вы взглянете на один экземпляр поле.поле.* yaml поля ссылки на объект, вы увидите настройки.handler_settings.target_bundle свойство, содержащее список разрешенных пакетов для этого поля ссылки на объект. Чтобы получить эти данные из кода, вам понадобится FieldConfig:: загрузка (идентификатор) или же FieldConfig::loadByName($entity_type_id, $bundle, $field_name) в зависимости от того, какие данные у вас есть под рукой. Как только вы получите экземпляр конфигурации поля, появится получить настройку () метод, который вы можете использовать, чтобы захватить настройки_обработчика.

andileco avatar
флаг rs
Это полезно, но мне кажется, что я не могу делать то, что хочу.

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

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