エンティティ選択フィールドから値が選択されている場合にのみ要素を表示するにはどうすればよいですか?

Aug 20 2020

Webフォーム(Drupal 8)に、選択されているオプションに関係なく、ユーザーがエンティティ選択フィールドから1つ以上のオプションを選択した場合にのみ表示されるフィールドがあります。

Webフォームで使用可能な条件付きロジックオプションには、そのような状態が含まれていないようです。オンラインで検索し、webformモジュールのexample_element_states.ymlを調べました。選択したすべての関連する例では、条件付きロジックとして特定のオプション値を指定しています。

誰かがそのような問題に遭遇して解決しましたか?

回答

3 leymannx Aug 20 2020 at 04:06

とった!0より大きい値を確認する必要があります。🤷

user:
  '#type': webform_entity_select
  '#title': User
  '#multiple': true
  '#target_type': user
  '#selection_handler': 'default:user'
  '#selection_settings':
    include_anonymous: false
    filter:
      type: _none
text:
  '#type': textfield
  '#title': Text
  '#states':
    visible:
      ':input[name="user[]"]':
        value:
          greater: '0'

PHPでは次のようになっていると思います。

$form['text']['#states'] = [
  'visible' => [
    ':input[name="user[]"]' => [
      'value' => [
        'greater' => "0",
      ]
    ]
  ]
];