データの型 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);