Contoh di atas cukup dekat tetapi masih belum benar. Idenya adalah bahwa Anda harus membuat id Anda sendiri dari contoh blok (dalam kasus saya devel_execute_php_1112 (mungkin karena saya mencoba membuatnya bekerja 1112 kali, itu akan tetap menjadi misteri)) dan kemudian id blok yang sebenarnya (salah satu yang dideklarasikan untuk blok khusus dalam anotasi) dan tema. Kemudian atur saja wilayah dan Anda baik untuk pergi. Membuat instance blok di bawah wilayah yang diinginkan.
$blockEntityManager = \Drupal::service('entity.manager')->getStorage('block');
$block = $blockEntityManager->create(
array(
'id'=> 'devel_execute_php_1112',
'plugin' => 'devel_execute_php',
'theme' => 'seven'
)
);
$block->setRegion('content');
$block->save();
sunting1: Saya benar-benar memeriksa kemudian komentar di atas - dan itu benar. Tidak jelas bahwa id adalah sesuatu yang harus Anda buat. Sebagai penukaran untuk komentar lumpuh saya, saya akan memposting solusi tentang cara membuat contoh blok entitas blok kustom:
$blockEntityManager = \Drupal::service('entity.manager')->getStorage('block');
$block = $blockEntityManager->create(
array(
'id'=> 'ggggggggsssssss',
'plugin' => 'block_content:79d53b4e-9e60-4f97-befc-101da919bb7a',
'theme' => 'visitb_he_theme'
)
);
$block->setRegion('content');
pada dasarnya sama tetapi untuk plugin Anda menulis block_content: uuid_of_custom_block_entity_instance