$modx -> resource -> setTVValue(11, 1);
print_r($modx -> resource -> getTVValue(11));
$modx -> resource -> setTVValue(11, 2);
print_r($modx -> resource -> getTVValue(11));
I have a snippet that outputs 2 and 2, whereas it should output 1 and 2. Resource caching is turned off; snippet call is not cached either.
I have tried to fix this problem by another way, but it still updates my TV only after the whole page gets reloaded:
$tv = $modx->getObject('modTemplateVar',array('id'=>'11'));
$tv -> setValue($modx->resource->get('id'), 88);
$tv->save();
print_r($modx -> resource -> getTVValue(11));
By the way, if I am not working with TVs, everything is fine!
$modx -> resource -> set("pagetitle", 1);
print_r($modx -> resource -> get("pagetitle"));
$modx -> resource -> set("pagetitle", 2);
print_r($modx -> resource -> get("pagetitle"));
How do I fix this issue with TVs? I've tried to clear cache like this $modx->cacheManager->refresh();
too, but it didn't do the trick.
Ok try this
$id_resource = $modx->resource->get('id');
$id_tv = 11;
$value = 88;
$tv = $modx->getObject('modTemplateVar',array('id'=>$id_tv));
$tv -> setValue($id_resource, $value);
$tv->save();
if you need to get resource try this
$id_resource = $modx->resource->get('id');
$id_tv = 11;
$res = $modx->getObject('modResource',array('id'=>$id_resource));
print_r($res->getTVValue($id_tv));