BlockBase Form API, '#type' => 'item', render without [#name]

Created on 11 January 2019, over 5 years ago
Updated 30 October 2023, 8 months ago

Problem/Motivation

A form in a block has an incomplete class name. In the example below, it is js-form-item- and form-item-.

<div class="js-form-item form-item js-form-type-item form-type-item js-form-item- form-item-"><label>Balance</label>500 NOK</div>

Steps to reproduce

Block Code:

<?php
namespace Drupal\xxxxxxxx\Plugin\Block;
use Drupal\Core\Block\BlockBase;

/**
 * Provides a 'Modal' Block
 *
 * @Block(
 *   id = "modal_block",
 *   admin_label = @Translation("Modal block"),
 * )
 */
class ModalBlock extends BlockBase {
  public function build() {
	$form['balance'] = [
	  '#type' => 'item',
	  '#title' => 'Balance',
	  '#markup' => '500 NOK',
	];
	return $form;
  }
}

BlockBase Render un-expected class 'form-item-'

<div class="js-form-item form-item js-form-type-item form-type-item js-form-item- form-item-"><label>Balance</label>500 NOK</div>

FormBase Render expected code

<div id="edit-balance" class="js-form-item form-item js-form-type-item form-type-item js-form-item-balance form-item-balance"><label for="edit-balance">Balance</label>500 NOK</div>

Issue (bug in question)
I believe, the rendered class by BlockBase is missing the [#name], since the output is form-item-. FormBase produce expected output.

Proposed resolution

TBA

Remaining tasks

Check for duplicate
patch
review

User interface changes

API changes

Data model changes

Release notes snippet

🐛 Bug report
Status

Active

Version

9.5

Component
Block 

Last updated about 8 hours ago

Created by

🇨🇿Czech Republic XSramik

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

Production build 0.69.0 2024