Esto es por el diseño de CakePHP. CakePHP siempre ve tinyint(1)
como booleano, por lo tanto, siempre convertirá su valor a true
/false
de ahí el 1
/0
.
Para solucionar este problema, use tinyint(2)
en lugar de su tipo de columna. ¡Recuerda borrar la memoria caché de tu modelo!
Documentación del tipo de datos de CakePHP:
http://book.cakephp.org/3.0/en/orm/database-basics.html#tipos-de-datos
Publicación de blog sobre esto:
http://blog.room34.com/archives/2649
Preguntas y respuestas similares:
CakePHP y tinyint como boolean