Логика в Блоках
25.01.2018Сделал блок, который выводит некоторые данные из БД. Но заметил неприятную вещь: При обновлении переменной в БД в блоке она не меняется. Я думаю есть возможность добавить логику в блок, но не соображу как это сделать и просторы интернета мало помогают.
ЗЫ. Ваш сайт ответил на 80% моих вопросов в процессе создания сайта. Спасибо за Ваш труд!
Комментарии (4)
После изменений данных в БД, очистите кэш и посмотрите - изменились ли данные в блоке. Подозреваю, что дело в кэше.
(Сначала задал вопрос, потом зарегился)
После очистки кэша данные в блоке конечно изменились.
Но суть в том что данные будут разные в зависимости от пользователя. А при том подходе что у меня сейчас - блок будет иметь вид для всех пользователей такой, какой был у меня на момент сброса кэша.
У меня создан модуль, в нем реализован block extends BlockBase с методами build(), getFormId(), blockForm($form, FormStateInterface $form_state), blockSubmit($form, FormStateInterface $form_state).
Либо метода какого-то для логики не хватает, либо логика должна как-то на стороне делаться, например в контроллере, или в модуле.
все, что вам нужно - это отключить кэширование данного блока. Это ответит на ваши вопросы: https://www.drupal8.ovh/en/tutoriels/340/disable-cache-for-a-specific-page
Огромное СПАСИБО!
Ровно то что надо!
Бился над этой проблемой пол дня, оказалось все так просто!