На моем сайте (drupal 9.2.8) пользователи добавляют контент, и нет необходимости указывать какую-либо информацию в поле «Заголовок».
Я пытался сделать это поле необязательным через form_alter в пользовательском модуле, но это не сработало:
функция yourmodule_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id){
если ($form['#form_id'] == 'node_somenode_form' или $form['#form_id'] == 'node_somenode_form'){
$form['title']['widget']['0']['#required'] = FALSE; // не работает
$form['title']['widget']['#required'] = FALSE; // не работает
$form['title']['#required'] = FALSE; // не работает
}
}
В качестве обходного пути в моем модуле я предварительно заполняю заголовок с помощью form_alter:
$form['title']['widget']['0']['value']['#default_value'] = 'любой заголовок по умолчанию';
а затем просто скройте это поле из формы. Есть несколько способов сделать это (В форме изменить, каков другой способ скрытия полей и в чем разница между ними?
), я решил использовать hide:
скрыть ($ форма ['название']);
но мне любопытно, почему ['#требуется'] = ЛОЖЬ;
не работает для поля заголовка, но отлично работает с другими полями.