Drupal 8/9 模块发布后没有刷新表单数据

Posted

技术标签:

【中文标题】Drupal 8/9 模块发布后没有刷新表单数据【英文标题】:Drupal 8/9 module no refresh form data after post 【发布时间】:2021-08-11 07:56:00 【问题描述】:

我有一个运行良好的 D8 模块。但我有一个问题。 传感器数据存储在数据库中。在 D8 网站中,缓存被禁用,但所选数据不会更新。如果我使用“drush cr”则可以,但下一个选定的数据不会更新。 可能是什么问题? 代码很快:

#
# form for SQL SELECT
#
function buildForm()
//...
$form['date_from'] = [ '#type' => 'datetime', ... ];
$form['date_to'] = ...
$form['#cache'] = ['max-age' => 0];
/// ...

所以,我选择一个 date_from 和 date_to 并发布它,然后就可以了。我回去更改 date_from、date_to 并发布它,然后它仍然保持前一个日期! 在“drush cr”之后它再次工作......等等

没有效果(settings.php):$settings['rebuild_access'] = TRUE;

谢谢, G.

【问题讨论】:

【参考方案1】:

我找到了:How to clear cache programmatically in Drupal 8?

两者都有效。 :)

在函数 buildForm() 中:

drupal_flush_all_caches();
// or
\Drupal::service("router.builder")->rebuild();

【讨论】:

以上是关于Drupal 8/9 模块发布后没有刷新表单数据的主要内容,如果未能解决你的问题,请参考以下文章

如何 - 构建自定义 drupal 8 模块表单

Drupal Webform 模块:仅电子邮件

自定义模板中的Drupal 7自定义表单

在 Drupal 中查找“更改”特定表单的模块列表

Drupal 自定义表单记住文本字段数据

drupal:表单 API,根据输入动态隐藏或显示字段