De fapt, imaginea implicită nu provoacă salvarea datelor, dar afectează formatatorul de imagini, așa că dacă nu găsește nicio valoare pentru câmpul de imagine, atunci afișează imaginea implicită care este setată în setările câmpului.
puteți verifica în DB sau pur și simplu creați un conținut cu imaginea implicită A.png și apoi mergeți la setările de câmp și schimbați imaginea implicită la B.png, iar când afișați nodul dvs. veți vedea că B.png va fi afișat în conținut.
Deci, dacă nu doriți să vedeți imaginea implicită în unele cazuri, puteți duplica formatatorul de imagine implicit și faceți ce doriți.
și dacă într-adevăr doriți să salvați un câmp de date pentru imagine cu valoarea implicită, puteți face acest lucru modificând forma nodului ca mai jos:
function my_module_form_node_article_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
foreach (array_keys($form['actions']) ca $action) {
if ($action != 'previzualizare' && isset($form['actions'][$action]['#type']) && $form['actions'][$action]['#type'] == = 'trimite') {
array_unshift($form['actions'][$action]['#submit'], 'my_module_test_form_submit');
}
}
}
function my_module_test_form_submit(&$form, \Drupal\Core\Form\FormStateInterface $form_state) {
$imagine = $form_state->getValue('field_image');
dacă (gol ($image[0]['fids'])) {
$form_state->setValue('field_image', $form['field_image']['widget'][0]['#default_image']['fid']);
}
}