Doctrine 不存储 ArrayCollection



我有一个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());

相关内容

  • 没有找到相关文章

最新更新