Persist Doctrine ArrayCollection with only strings to MySQL database
我将把arraycollection类型的字段持久化到一个仅包含sting的mysql数据库中。数据库字段在ORM定义中为"array"类型,在数据库中为文本类型。
1 2 3 4 5 6 | /** * @var ArrayCollection * * @ORM\Column(name="currencies", type="array") */ private $currencies; |
当持久化时,它在数据库中看起来像这样:
1 | O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:54:"Doctrine\Common\Collections\ArrayCollection_elements";a:3:{i:0;s:3:"EUR";i:1;s:3:"USD";i:2;s:3:"GBP";}} |
有没有办法让JSON数组更接近数据库?像这样:
1 | ['EUR', 'USD', 'GBP'] |
为什么要设置$currency属性的arraycollection?为什么不使用数组?
您也可以使用"json_array"原则类型而不是"array"。
条令在插入数据库时使用php函数
提取时使用
您可以简单地使用:
另请参见这个问题:如何在symfony 2.0ajax应用程序中将条令实体编码为json?
在将某些内容保存到数据库之前:
1 2 3 |
从数据库加载数据后:
1 2 3 |