Questo è il design di CakePHP. CakePHP vede sempre tinyint(1) come booleano quindi convertirà sempre il tuo valore in true /false da qui il 1 /0 .
Per superare questo problema, usa tinyint(2) invece per il tipo di colonna. Ricordati di svuotare la cache del tuo modello!
Documentazione sui tipi di dati CakePHP:
https://book.cakephp.org/3.0/en/orm/database-basics.html#data-types
Post del blog su questo:
https://blog.room34.com/archives/2649
Domande e risposte simili:
CakePHP e tinyint as boolean