Symfony 2 - 无法插入 json_array 类型变量
Posted
技术标签:
【中文标题】Symfony 2 - 无法插入 json_array 类型变量【英文标题】:Symfony 2 - could not able to insert json_array type variable 【发布时间】: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"
【参考方案1】:
我认为您应该在多条街道上使用type="text"
或自己的实体
http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/types.html#text
因为:
type="json_array"
已弃用 type="json"
http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/types.html#json-array
这种类型需要一个可以编码的字符串,而不是一个数组
【讨论】:
以上是关于Symfony 2 - 无法插入 json_array 类型变量的主要内容,如果未能解决你的问题,请参考以下文章