Hierarchy
- class \Drupal\form_test\Form\TreeConfigTargetForm extends \Drupal\Core\Form\ConfigFormBase
Expanded class hierarchy of TreeConfigTargetForm
1 string reference to 'TreeConfigTargetForm'
- form_test.routing.yml in core/
modules/ system/ tests/ modules/ form_test/ form_test.routing.yml - core/modules/system/tests/modules/form_test/form_test.routing.yml
File
- core/
modules/ system/ tests/ modules/ form_test/ src/ Form/ TreeConfigTargetForm.php, line 8
Namespace
Drupal\form_test\FormView source
class TreeConfigTargetForm extends ConfigFormBase {
/**
* {@inheritdoc}
*/
protected function getEditableConfigNames() {
return [
'form_test.object',
];
}
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'form_test_tree_config_target_form';
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state) {
$form['vegetables'] = [
'#type' => 'details',
'#open' => TRUE,
'#tree' => TRUE,
'#input' => TRUE,
'#title' => t('Vegetable preferences'),
];
$form['vegetables']['favorite'] = [
'#type' => 'textfield',
'#title' => t('Favorite'),
'#default_value' => 'Potato',
'#config_target' => 'form_test.object:favorite_vegetable',
];
$form['vegetables']['nemesis'] = [
'#type' => 'textfield',
'#title' => t('Nemesis'),
'#config_target' => 'form_test.object:nemesis_vegetable',
];
// Since form_test.object contains translatable values, it must specify a
// language.
$form['langcode'] = [
'#type' => 'value',
'#value' => 'en',
'#config_target' => 'form_test.object:langcode',
];
$form['test1'] = [
'#type' => 'select',
'#title' => $this
->t('Test 1'),
'#options' => [
'option1' => $this
->t('Option 1'),
'option2' => $this
->t('Option 2'),
],
'#ajax' => [
'callback' => '::updateOptions',
'wrapper' => 'edit-test1-wrapper',
],
'#prefix' => '<div id="edit-test1-wrapper">',
'#suffix' => '</div>',
];
return parent::buildForm($form, $form_state);
}
/**
* Updates the options of a select list.
*
* @param array $form
* An associative array containing the structure of the form.
* @param \Drupal\Core\Form\FormStateInterface $form_state
* The current state of the form.
*
* @return array
* The updated form element.
*/
public function updateOptions(array $form, FormStateInterface $form_state) {
$form['test1']['#options']['option1'] = $this
->t('Option 1!!!');
$form['test1']['#options'] += [
'option3' => $this
->t('Option 3'),
'option4' => $this
->t('Option 4'),
];
return $form['test1'];
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
TreeConfigTargetForm:: |
public | function | ||
TreeConfigTargetForm:: |
protected | function | ||
TreeConfigTargetForm:: |
public | function | ||
TreeConfigTargetForm:: |
public | function | Updates the options of a select list. |