2016年5月5日木曜日

cakephp mysql tinyintの罠

PHP Ver 5.6.27
CakePHP Ver 3.1.9


cakephp mysql tinyintの罠

・cakephpでmysqlのtinyint型を利用するときは要注意!
tinyint(1)と設定した項目はbool型として認識される。

$this->request->dataでは正しくPOSTされてくる、
しかし、patchEntityをするとbool型になる。
何をやっても結果は一緒・・・

これはbugではないのか?とcakephp側のコードを追う
散々調べた結果、cakephpでのtinyint(1)はvarchar型などのbyteと違い、bitと認識されるらしい
相当、はまった・・・
とりあえず、tableをcreateするときに指定なしでtinyintとすることにした

0 件のコメント:

コメントを投稿