Това е по дизайна на CakePHP. CakePHP винаги вижда tinyint(1) като булев, следователно винаги ще преобразува вашата стойност в true /false следователно 1 /0 .
За да преодолеете този проблем, използвайте tinyint(2) вместо за вашия тип колона. Не забравяйте да изчистите кеша на вашия модел!
Документация за типа данни на CakePHP:
https://book.cakephp.org/3.0/en/orm/database-basics.html#data-types
Публикация в блога за това:
https://blog.room34.com/archives/2649
Подобни въпроси и отговори:
CakePHP и tinyint като булеви