ฉันมีบล็อกแบบกำหนดเองซึ่งแสดงจำนวนกิจกรรมที่เพิ่มในรายการโปรด (โมดูลตั้งค่าสถานะ) ฉันใช้เทมเพลต TWIG เพื่อแสดงผลเหล่านั้น ฉันต้องการรีเฟรชเนื้อหาบล็อกทันทีหลังจากที่ผู้ใช้ตั้งค่าสถานะ/ยกเลิกการตั้งค่าสถานะโหนด ขณะนี้ฉันสามารถรับค่าที่อัปเดตได้หากฉันโหลดหน้าซ้ำ
โครงสร้าง () มีลักษณะดังนี้:
คลาส FavoritesBlock ขยาย BlockBase
{
/**
* {@inheritdoc}
*/
ฟังก์ชั่นสาธารณะ getCacheMaxAge()
{
กลับ 0;
}
สร้างฟังก์ชั่นสาธารณะ ()
{
$uid = \Drupal::currentUser();
ถ้า ($uid->isAuthenticated()) {
$flag = \Drupal::service('flag')->getFlagById('รายการโปรด');
$count = \Drupal::service('flag.count')->getUserFlagFlaggingCount($flag, $uid);
$test = "เหตุการณ์ที่เพิ่มในรายการโปรด: " . $ นับ;
$link_url = Url::fromUri("https://my-site/my-favorite-events");
$text = Link::fromTextAndUrl(t($test), $link_url)->toString();
}
กลับ [
'#markup' => $text,
'#cache' => อาร์เรย์(
'แท็ก' => ['config:node_type_list'],
'อายุสูงสุด' => 0,
),
];
}
}
นอกจากนี้ ฉันยังได้พบกับ EventSubscriber ซึ่งดูเหมือนว่าจะถูกเรียกใช้เมื่อฉันต้องการ ซึ่งหมายถึงการตั้งค่าสถานะ/การยกเลิกการตั้งค่าสถานะ แต่ฉันไม่รู้ว่ามันจะมีประโยชน์ในสถานการณ์นี้หรือไม่ ฉันมีประสบการณ์ไม่มากนัก
การโหลดบล็อกอัตโนมัติสามารถทำได้อย่างไร