На самом деле изображение по умолчанию не вызывает сохранения данных, но влияет на средство форматирования изображения, поэтому, если оно не находит значений для поля изображения, оно отображает изображение по умолчанию, которое установлено в настройках поля.
вы можете проверить в БД или просто создать контент с изображением по умолчанию A.png, а затем перейти к настройкам поля и изменить изображение по умолчанию на B.png, и когда вы отобразите свой узел, вы увидите, что B.png будет отображаться в содержимом.
Поэтому, если вы не хотите видеть изображение по умолчанию, в некоторых случаях вы можете продублировать средство форматирования изображения по умолчанию и делать все, что хотите.
и если вы действительно хотите сохранить данные для поля изображения со значением по умолчанию, вы можете сделать это, изменив форму узла, как показано ниже:
function my_module_form_node_article_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
foreach (array_keys($form['actions']) как $action) {
if ($action != 'предварительный просмотр' && isset($form['actions'][$action]['#type']) && $form['actions'][$action]['#type'] == = 'отправить') {
array_unshift($form['actions'][$action]['#submit'], 'my_module_test_form_submit');
}
}
}
функция my_module_test_form_submit(&$form, \Drupal\Core\Form\FormStateInterface $form_state) {
$image = $form_state->getValue('field_image');
если (пусто($image[0]['fids'])) {
$form_state->setValue('field_image', $form['field_image']['widget'][0]['#default_image']['fid']);
}
}