我有一个Entity
,它有一个数组字段,如下所示:
...
/**
* @var array
*
* @ORMColumn(name="tels", type="json_array")
*/
private $tels;
...
我用表格填写了这个,它填写正确,因为在提交var_dump($entity->getTels())
后返回了这个:
object(DoctrineCommonCollectionsArrayCollection)[448]
private '_elements' =>
array (size=1)
0 => string '123' (length=3)
但在持久主义之后忽略了这个字段的值并存储空数组:
+----+------+
| id | tels |
+----+------+
| 1 | {} |
+----+------+
问题出在哪里?
类型json_array
需要一个数组,然后使用json_encode将其转换为json。虽然条令数组集合在技术上是可遍历的,但它不能很好地投射到数组中。所以你要么需要在上面调用->toArray()
,要么把你的类型改为array
$entity->setTels($theArrayCollection->toArray());