gpt4 book ai didi

drupal 8 BaseFieldDefinition entity_reference 带条件

转载 作者:行者123 更新时间:2023-12-05 08:08:56 26 4
gpt4 key购买 nike

我不确定这是否是正确的实现方式,所以我希望你能帮助我。我正在尝试引用 Drupal 8 中的自定义内容实体,条件是只有当前用户创建的实体应该显示。

基本上CUSTOM ENTITY 1 -> CUSTOM ENTITY 2(由用户创建)

我找到了一种使用 View 执行此操作的方法,但我想知道如何以编程方式实现此操作。

请注意,我已经设法获取 ID 列表并将其显示为下拉列表,但这不是我想要的。

我想将引用显示为自动完成。

这是我到目前为止得到的:

$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 获取引用实体的查询?

最佳答案

试试这个:

`

$fields['subgroup_id'] = BaseFieldDefinition::create('entity_reference')
->setLabel(t('Dalinama grupėms'))
->setDescription(t('Allocation groups.'))
->setSetting('target_type', 'distribution_group')
->setSetting('handler', 'views')
->setSetting('handler_settings', [
'view' => [
'view_name' => 'entity_reference_views_filter',
'display_name' => 'entity_reference_1',
],
])
->setRequired(TRUE)
->setCardinality(1)
->setDisplayOptions('view', array(
'label' => 'above',
'type' => 'list_default',
'weight' => -4,
))
->setDisplayOptions('form', array(
'type' => 'options_select',
'settings' => array(
'match_operator' => 'CONTAINS',
'size' => 60,
'placeholder' => '',
),
'weight' => -2,
))
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE);

`

关于drupal 8 BaseFieldDefinition entity_reference 带条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44881123/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com