【问题标题】:Symfony 2 - could not able to insert json_array type variableSymfony 2 - 无法插入 json_array 类型变量
【发布时间】:2018-07-15 00:08:11
【问题描述】:

json_array 类型变量无法包含到数据库中。填充的异常如下

(Symfony\Component\Debug\Exception\ContextErrorException(code: 0): Warning: implode(): Invalid arguments passed at /var/www/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/SimpleArrayType.php:51)"}

我的实体类有这部分 json_array 类型参数。

/**
*
* @ORM\Column(name="street", type="json_array")
*/
private $street;

我还使用实体管理器将其包含到数据库中。

$entityName->setStreet(
           array(
              'street_1' => $queueItem->street_1,
              'street_2' => $queueItem->street_2));

if($this->em->getUnitOfWork()->getEntityState($entityName)) {
               $this->em->flush();
}

【问题讨论】:

  • 您是否尝试将您传递给setStreet的数组转储?
  • 我的 var_dump 是 array(2) { 'street_1' => string(38) "address line 1" 'street_2' => string(10) "Office 101" }

标签: symfony symfony-2.1


【解决方案1】:

我认为您应该在多条街道上使用type="text" 或自己的实体

http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/types.html#text

因为:

  1. type="json_array" 已弃用 type="json" http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/types.html#json-array
  2. 这种类型需要一个可以编码的字符串,而不是一个数组

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-27
    • 1970-01-01
    • 2015-04-19
    • 2017-11-20
    • 1970-01-01
    • 2022-07-24
    相关资源
    最近更新 更多