Я бы сбросил активный индекс на $ enlist сразу после условия:
if ($enlist['active']) {
unset($enlist['active']);
$enlist -> active = 0;
...
} else {
unset($enlist['active']);
$enlist -> active = 1;
...
}
Я предполагаю, что Cake смущен, потому что у вас есть и $enlist['active']
, и $enlist->active
. Если это не сработает, вы можете попробовать установить active в качестве массива, например
$enlist['active'] = 0;
вместо
$enlist -> active = 0;