Всем привет. Подскажите плиз. Пытаюсь запустить ajax при работе с формами. В кастомный блок выгружаю форму создания ноды. Далее в form_alter пытаюсь вызвать ajax при изменении значения на форме. Но. Каждый раз когда я меняю значение я получаю ошибку TypeError: Argument 1 passed to Drupal\Core\Field\WidgetBase::massageFormValues() must be of the type array, null given,
Которае отсылает меня на на вот эту строку return \Drupal::formBuilder()->getForm($form); (функция build). Помогите плиз разобраться как работать с ajax.
<?php
public function build() {
$values = array('type' => 'agency_call');
$node = \Drupal::entityTypeManager()
->getStorage('node')
->create($values);
$form = \Drupal::entityTypeManager()
->getFormObject('node', 'create')
->setEntity($node);
return \Drupal::formBuilder()->getForm($form);
}
function
wa_advice_form_alter(&$form,$form_state, $form_id) {
kint($form['field_what_genre_do_you_write_']['widget']);
$form['field_what_genre_do_you_write_']['widget']['#ajax'] = [
'event' => 'change',
'callback' => 'wa_advice_form_ajax',
];
$form['debug'] = [
'#type' => 'container',
'#attributes' => [
'id' => ['debug-out'],
],
];
}
}
function
wa_advice_form_ajax(array &$form, FormStateInterface $form_state):AjaxResponse{
$response = new AjaxResponse();
$debugOut = @Kint::dump($form_state);
$response->addCommand(new ReplaceCommand('#debug-out', $debugOut ));
return $response;
}
?>
Комментарии
Посмотрите сначала http://drupal.org/project/examples -> ajax