Widget for a Machine Name form element.
Machine Name Widget provides a field for the machine_name render element. This module does not provide a UI for configuring the widget, but rather is intended to be used by other modules (i.e. content entities).
New Projects: read me first!
You should probably be using the core patch, located here: #2685749: Add a 'machine_name' widget for string field types with a UniqueField constraint. When this lands, this module will be obsolete. You can get ahead of the migration issues by just using the patch now.
Setup
The widget accepts the same configuration as machine_name. Simply use the type machine_name
and pass the same config into settings
.
Example
Here's an example from Colossal Menu:
$fields['machine_name'] = BaseFieldDefinition::create('string')
->setLabel(t('Machine name'))
->setDescription(t('Machine name of the menu link'))
->setRequired(TRUE)
->setSetting('max_length', 255)
->addConstraint('UniqueField', [])
->setDisplayOptions('form', [
'type' => 'machine_name',
'weight' => -4,
'settings' => [
'source' => [
'title',
'widget',
0,
'value',
],
'exists' => '\Drupal\colossal_menu\Entity\Link::loadByMachineName',
],
]);
Project information
- Module categories: Developer Tools, Site Structure
- 516 sites report using this module
- Created by davidwbarratt on , updated
- Stable releases for this project are covered by the security advisory policy.
Look for the shield icon below.