Логика в Блоках

25.01.2018

Сделал блок, который выводит некоторые данные из БД. Но заметил неприятную вещь: При обновлении переменной в БД в блоке она не меняется. Я думаю есть возможность добавить логику в блок, но не соображу как это сделать и просторы интернета мало помогают.
ЗЫ. Ваш сайт ответил на 80% моих вопросов в процессе создания сайта. Спасибо за Ваш труд!

-->
Узнавай о новых статьях сайта - первым. Просто подпишись на рассылку.

Комментарии (4)

Profile picture for user pantey
pantey
25.01.2018

После изменений данных в БД, очистите кэш и посмотрите - изменились ли данные в блоке. Подозреваю, что дело в кэше.

Profile picture for user Ilusion
Ilusion
25.01.2018

(Сначала задал вопрос, потом зарегился)

После очистки кэша данные в блоке конечно изменились.

Но суть в том что данные будут разные в зависимости от пользователя. А при том подходе что у меня сейчас - блок будет иметь вид для всех пользователей такой, какой был у меня на момент сброса кэша.

У меня создан модуль, в нем реализован block extends BlockBase  с методами build(), getFormId(), blockForm($form, FormStateInterface $form_state), blockSubmit($form, FormStateInterface $form_state).

Либо метода какого-то для логики не хватает, либо логика должна как-то на стороне делаться, например в контроллере, или в модуле.

Profile picture for user pantey
pantey
25.01.2018

все, что вам нужно - это отключить кэширование данного блока. Это ответит на ваши вопросы: https://www.drupal8.ovh/en/tutoriels/340/disable-cache-for-a-specific-page

Profile picture for user Ilusion
Ilusion
25.01.2018

Огромное СПАСИБО!

Ровно то что надо!

Бился над этой проблемой пол дня, оказалось все так просто!