Есть migx поле, с двумя ключами : "usrid" и "pay", у pay значения 1 или 0, необходимо массово удалить все строки в которых "pay"=0
а еще лучше если ктото поможет понять почему у меня не работает сниппет:
$page = $modx->getObject('modResource', 1);
$usrTv = $page->getTVValue('migxusers');
$users = json_decode($usrTv, true);
foreach ($users as $key => $value) {
foreach ($value as $k => $v) {
if($k == "usrid" && $v == $special){
unset($users[$key]);
//$users[$key][pay] = '0';
$resource = $modx->getObject('modResource', 1);
$resource->setTVValue('3', json_encode($users));
$resource->save();
}
}
В него приходит переменная $special в которой содержится содержимое usrid из migx
и предполагается что этот ключ из массива должен удалится и массив должен запушиться обратно в бд, но этого не происходит, дропается вся таблица.
по этому я на данный момент использую $users[$key][pay] = '0'; , но при этом накапливаются строки в таблице, а удалять их вручную вообще не вариант.
по этому необходим либо способ массово удалять строки с "pay"=0 , либо как-то поправить сниппет.
[ed. note: f4rr3ll90 last edited this post 6 years, 4 months ago.]