modx xpdo 刷新数据需要很长时间

我在 MODX Revolution 2.7.3 中使用 xpdo 在与 modx 安装相同的数据库中插入自定义表和额外数据。一切工作正常,只是表中的更改需要大约 20 分钟才能显示在 xpod 查询中。


例如,我有一个包含成人字段的联系人表。在表单中,我有一个下拉框,其中选项是成人联系人。它工作正常,但当您更改联系人的成人状态时,下拉列表中的选项需要 20 分钟才能反映更改。


请参阅下面我的代码


$class='Contacts';


$fields = array_keys($modx->getFields($class));


$collections = $modx->getCollection($class);


foreach($collections as $collection) {


    if($collection->get($fields[4])=='YES'){

    $output .= '<option value=' . $collection->get($fields[0]).'>'.$collection->get($fields[1])." ".$collection->get($fields[2]).'</option>';

    }


}



return $output;


There is only one table involved and the code for creating the table is:


    CREATE TABLE `cbdb_contacts` (

  `contactID` int(11) NOT NULL,

  `firstname` varchar(15) COLLATE utf8_unicode_ci NOT NULL,

  `lastname` varchar(25) COLLATE utf8_unicode_ci NOT NULL,

  `dob` date NOT NULL,

  `adult` enum('YES','NO') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'NO',

  `mobile` text COLLATE utf8_unicode_ci NOT NULL,

  `landline` text COLLATE utf8_unicode_ci NOT NULL,

  `address` text COLLATE utf8_unicode_ci NOT NULL,

  `email` text COLLATE utf8_unicode_ci NOT NULL,

  `comments` longtext COLLATE utf8_unicode_ci NOT NULL,

  `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


牧羊人nacy
浏览 136回答 1
1回答

慕尼黑5688855

使用 时似乎默认启用缓存getCollection(),请尝试false作为第三个参数传递。$collections = $modx->getCollection($class, null, false);您可能还必须传递一个空数组作为第二个参数,文档有点冲突。$collections = $modx->getCollection($class, [], false);编辑显然,片段结果也会被缓存,甚至不会访问数据库,除非使用无缓存语法调用它们[[!tag]]。使用该!指令应该绕过此特定片段的缓存,这是可以的,因为这是最小的数据库查询。
打开App,查看更多内容
随时随地看视频慕课网APP