首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从视图中填充select字段,如

如何从视图中填充select字段,如
EN

Drupal用户
提问于 2019-05-07 09:57:05
回答 1查看 112关注 0票数 1

在自定义内容实体中,我已经定义了这个字段。

代码语言:javascript
运行
复制
$fields['from_seliste_id'] = BaseFieldDefinition::create('entity_reference')
  ->setLabel(t('Offreur'))
  ->setDescription(t('Le SÉListe qui a rendu le service (qui reçoit les graines)'))
  ->setSetting('target_type', 'person')
  ->setSetting('handler', 'views')
  ->setSetting('handler_settings', [
    'view' => [
      'view_name' => 'sel_selistes',
      'display_name' => 'entity_reference_1',
    ],
  ])
  ->setDisplayOptions('view', array(
    'weight' => $weight,
  ))
  ->setDisplayOptions('form', array(
    'weight' => $weight,
    'type' => 'options_select',
  ))
  ->setDisplayConfigurable('form', TRUE)
  ->setDisplayConfigurable('view', TRUE)
  ->setRequired(TRUE);

在相应的表单中,该字段显示为需要的下拉列表,其中填充了视图sel_selistes的结果:

我想创建另一个具有相同功能的表单。我应该如何在表单中编码该字段?

代码语言:javascript
运行
复制
$form['mySelectField'] = array(
  '#type' => 'select',
  '#options' => [], <-- ??????
  '#title' => $this
    ->t('whatever'),
);
EN

回答 1

Drupal用户

回答已采纳

发布于 2019-05-07 10:26:26

我没有时间给出确切的答案,但也有一些类似的问题。

代码语言:javascript
运行
复制
// Programmatically execute view
$view = views_get_view('sel_selistes'); //  view machine name
$view->set_display("entity_reference_1"); // view display name
// $view->set_arguments($arg) // looks like you don't have arguments.
$view->execute();

$view_results = []; // create array
// loop through results
foreach ($view->result as $row_id => $row) {
  // some php magic so you add to array like this $view_results[$nid_value] = $some_field_row_value;
}

$form['my_select_field'] = array(
  '#type' => 'select',
  '#options' => $view_results,
  '#title' => $this
    ->t('whatever'),
);
票数 1
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/280857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档