Trên thực tế, hình ảnh mặc định không gây ra bất kỳ lưu dữ liệu nào nhưng nó ảnh hưởng đến trình định dạng hình ảnh, vì vậy nếu nó không tìm thấy giá trị nào cho trường hình ảnh thì nó sẽ hiển thị hình ảnh mặc định được đặt trong cài đặt trường.
bạn có thể kiểm tra DB hoặc chỉ cần tạo một nội dung với hình ảnh mặc định A.png, sau đó chuyển đến cài đặt trường và thay đổi hình ảnh mặc định thành B.png, và khi bạn hiển thị nút của mình, bạn sẽ thấy B.png đó sẽ được hiển thị trong nội dung.
Vì vậy, nếu bạn không muốn xem hình ảnh mặc định trong một số trường hợp, bạn có thể sao chép trình định dạng hình ảnh mặc định và làm bất cứ điều gì bạn muốn.
và nếu bạn thực sự muốn lưu dữ liệu cho trường hình ảnh với giá trị mặc định, bạn có thể làm điều đó bằng cách thay đổi dạng nút như bên dưới:
function my_module_form_node_article_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
foreach (array_keys($form['actions']) as $action) {
if ($action != 'preview' && isset($form['actions'][$action]['#type']) && $form['actions'][$action]['#type'] == = 'gửi') {
array_unshift($form['actions'][$action]['#submit'], 'my_module_test_form_submit');
}
}
}
function my_module_test_form_submit(&$form, \Drupal\Core\Form\FormStateInterface $form_state) {
$image = $form_state->getValue('field_image');
if (trống($image[0]['fids'])) {
$form_state->setValue('field_image', $form['field_image']['widget'][0]['#default_image']['fid']);
}
}