我不确定这是否是实现这一点的正确方法,所以我希望你能帮助我。我试图在 Drupal 8 中引用一个自定义内容实体,条件是只有当前用户创建的实体才应该显示。
基本上自定义实体 1 -> 自定义实体 2(由用户创建)
我找到了一种使用视图执行此操作的方法,但我想知道如何以编程方式实现此目的。
请注意,我已经设法获取了一个 id 列表并将其显示为下拉列表,但这不是我想要的。
我想将参考显示为 autocomplete 。
这是我到目前为止得到的:
$fields['dishes'] = BaseFieldDefinition::create('entity_reference')
->setLabel(t('Dishes'))
->setDescription(t('Select the dishes to add to this menu'))
->setSetting('target_type', 'dish')
->setSetting('handler', 'default')
->setTranslatable(TRUE)
->setCardinality(-1)
->setDisplayOptions('view', [
'label' => 'hidden',
'type' => 'entity_reference_label',
'weight' => -1,
])
->setDisplayOptions('form', [
'type' => 'entity_reference_autocomplete',
'weight' => -1,
'settings' => [
'match_operator' => 'CONTAINS',
'size' => '60',
'autocomplete_type' => 'tags',
'placeholder' => '',
],
])
->setDisplayConfigurable('form', FALSE)
->setDisplayConfigurable('view', TRUE);
有没有办法为此添加条件?或者自定义 Drupal 执行的查询以获取引用的实体?