データの型 class Cake\Database\Type
(略)
json
可能であれば、JSON 型に変換し、そうでなければ TEXT 型に変換します。 ‘json’ 型は 3.3.0 で追加されました。
っというわけで、使ってみた訳だが。
マニュアル通りに。
use Cake\Database\Schema\Table as Schema;
class WidgetsTable extends Table
{
protected function _initializeSchema(Schema $schema)
{
$schema->columnType('widget_prefs', 'json');
return $schema;
}
}
↑てなことをして、
$widgetTable = TableRegistry::get('Widgets');
$widget = $widgetTable.get(123);
$widget->widget_prefs[] = 'new pref';
$widgetTable->save($widget);
↑としても、なぜかカラムが更新されない。
↓にすると更新された。
$widgetTable = TableRegistry::get('Widgets');
$widget = $widgetTable.get(123);
$prefs = (array)$widget->widget_prefs;
$prefs[] = 'new pref';
$widget->widget_prefs = $prefs;
$widgetTable->save($widget);