Detta är av CakePHP:s design. CakePHP se alltid tinyint(1) som boolesk, därför konverterar den alltid ditt värde till true /false därav 1 /0 .
För att lösa detta problem, använd tinyint(2) istället för din kolumntyp. Kom ihåg att rensa modellcachen!
CakePHP-dokumentation för datatyp:
https://book.cakephp.org/3.0/en/orm/database-basics.html#data-types
Blogginlägg om detta:
https://blog.room34.com/archives/2649
Liknande frågor och svar:
CakePHP och tinyint som boolesk