จริง ๆ แล้วรูปภาพเริ่มต้นไม่ได้ทำให้เกิดการบันทึกข้อมูลใด ๆ แต่จะมีผลกับตัวจัดรูปแบบรูปภาพ ดังนั้นหากไม่พบค่าใด ๆ สำหรับฟิลด์รูปภาพ รูปภาพนั้นจะแสดงรูปภาพเริ่มต้นซึ่งตั้งค่าไว้ในการตั้งค่าฟิลด์
คุณสามารถตรวจสอบใน DB หรือเพียงแค่สร้างเนื้อหาด้วยรูปภาพเริ่มต้น A.png จากนั้นไปที่การตั้งค่าฟิลด์และเปลี่ยนรูปภาพเริ่มต้นเป็น B.png และเมื่อคุณแสดงโหนดของคุณ คุณจะเห็นว่า B.png จะแสดงในเนื้อหา
ดังนั้น หากคุณไม่ต้องการเห็นภาพเริ่มต้นในบางกรณี คุณสามารถทำซ้ำตัวจัดรูปแบบภาพเริ่มต้นและทำทุกอย่างที่คุณต้องการ
และถ้าคุณต้องการบันทึกข้อมูลสำหรับฟิลด์รูปภาพด้วยค่าเริ่มต้น คุณสามารถทำได้โดยแก้ไขรูปแบบโหนดดังต่อไปนี้:
ฟังก์ชัน my_module_form_node_article_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
foreach (array_keys($form['actions']) as $action) {
ถ้า ($action != 'preview' && 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');
ถ้า (ว่าง ($ ภาพ [0]['fids'])) {
$form_state->setValue('field_image', $form['field_image']['widget'][0]['#default_image']['fid']);
}
}