@KevinPfeifer Thank you for this solution, but in my context the changed value of the checkbox was not saved.
After modifying your code, the changed value of the checkbox was saved:
echo $this->Form->hidden('done',['value'=>0]);
echo $this->Form->label('done', 'Yes, I agree to receive updates');
echo $this->Form->input('done', ['type' => 'checkbox']);