Drupal 8 - 实体参考 - 自动完成 - 添加要搜索的字段并导致自动完成

时间:2017-06-12 09:14:38

标签: autocomplete drupal-8 entityreference

我有一个名为“律师”的实体。

另一个实体是指律师。

问题是当使用自动完成系统搜索参考字段时,会出现许多重复的名称:

巴勃罗
巴勃罗
巴勃罗
巴勃罗

我需要参考字段才能显示该人的姓氏,结果证明是

PabloMartínez
Paglo Gutirerrez
Pablo Iglesias
PabloLópez

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您将必须创建一个实体引用视图,以用作进行自动完成查找的处理程序。然后,您可以将其他字段(例如姓氏)添加到自动完成结果中。本文概述了这一过程:

https://www.cmsminds.com/blog/entity-reference-entity-reference-view-in-drupal-8/

如果该字段是基础字段,并且在“管理表单显示”页面上不可用,则必须修改实体类Lawyer :: baseFieldDefinitions函数。具体来说,您需要更改处理程序并设置表单显示设置。在您的BaseFieldDefinition :: create调用中:

->setSetting('handler', 'default')

需要更改为此:

->setSetting('handler', 'views')
->setSetting('handler_settings', [
  'view' => [
    'view_name' => 'name_of_entity_reference_view',
    'display_name' => 'name_of_view_display',
  ],
])
->setDisplayOptions('form', [
  'type' => 'entity_reference_autocomplete',
  'weight' => 2,
  'settings' => [
    'match_operator' => 'CONTAINS',
    'size' => '60',
    'autocomplete_type' => 'tags',
    'placeholder' => '',
  ],
])

或者,如果要在UI中使基本字段可用,则可以使用此行在表单显示设置ui中使该字段可用(然后将表单显示设置导出为config:

->setDisplayConfigurable('form', TRUE);