Isto é pelo design do CakePHP. CakePHP sempre vê
tinyint(1)
como booleano, portanto, sempre converterá seu valor para true
/false
daí o 1
/0
. Para superar esse problema, use
tinyint(2)
em vez de seu tipo de coluna. Lembre-se de limpar o cache do seu modelo! Documentação do tipo de dados do CakePHP:
http://book.cakephp.org/3.0/en/orm/database-basics.html#data-types
Postagem no blog sobre isso:
http://blog.room34.com/archives/2649
Perguntas e respostas semelhantes:
CakePHP e tinyint como boolean