对于您的问题是正确的方式,正确的方式也可能创建七个布尔字段。simple_array
然而,这里有一个小的vademecum:
了解一个类型在教义中如何工作的最佳方法是阅读该类型的代码,这是因为有几个细节被认为是理所当然的,或者在文档中没有真正解释。
所以你可以进入
/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/Type.php
找到您的类型并检查其方法是否按您的要求工作。
以下是一些详细信息:
simple_array
在/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/SimpleArrayType.php
return implode(',', $value);
它只是一个/项目,只存储值,它很有用,因为你可以轻松查询数据库。implode()
explode()
数组
在/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/ArrayType.php
return serialize($value);
将 PHP 调用 /,它比 快 。查看代码,我认为它也适用于对象。显然,如果您将字段视为纯文本,则它是不可满足的。serialize()
unserialize()
json_array
json_array
在/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/JsonArrayType.php
return json_encode($value);
它调用/,如果你查看字段,你可以看到一个无格式的JSON数组,但它比PHP的序列化对象更具可读性,并且实际上更具可移植性(JSON无处不在)。json_encode()
json_decode()
2018 年 6 月更新
- 现在这里有一个完整且更新的文档
- json_array被弃用以支持json类型,它将利用json字段的新数据库功能