"Array to string conversion" 在文档中使用散列时出错
"Array to string conversion" error when using hash in Document
我正在尝试对文档使用哈希类型。当我创建一个对象时没有问题,但是当我尝试检索文档时,我得到一个 "Array to string conversion"。
我已经简化了文档。此数组到字符串的转换仅在我添加此哈希 属性.
时才开始发生
查看 symfony 的转储消息,它似乎来自 hydrator。
知道为什么 Doctrine 试图将数据转换为字符串吗?
class MyDocument
{
/**
* @MongoDB\Id
*/
protected $id;
/**
* @MongoDB\Field(type="hash")
*/
protected $value = array();
}
我的一项服务中的某处:
$product =
$this->container->get('doctrine_mongodb')
->getRepository('XTradBundle:Traduction')
->findAll();
堆栈跟踪:
in var\cache\dev\doctrine\odm\mongodb\Hydrators\WeBSurgTradBundleDocumentTraductionHydrator.php at line 84 -
if (isset($data['value']) || (! empty($this->class->fieldMappings['value']['nullable']) && array_key_exists('value', $data))) {
$value = $data['value'];
if ($value !== null) {
//Why is it converting it to a string here?
$return = (string) $value;
} else {
$return = null;
}
protected $value = array();
中的 $value
似乎是保留名称。只需将其命名为其他名称即可解决问题。
我正在尝试对文档使用哈希类型。当我创建一个对象时没有问题,但是当我尝试检索文档时,我得到一个 "Array to string conversion"。
我已经简化了文档。此数组到字符串的转换仅在我添加此哈希 属性.
时才开始发生查看 symfony 的转储消息,它似乎来自 hydrator。
知道为什么 Doctrine 试图将数据转换为字符串吗?
class MyDocument
{
/**
* @MongoDB\Id
*/
protected $id;
/**
* @MongoDB\Field(type="hash")
*/
protected $value = array();
}
我的一项服务中的某处:
$product =
$this->container->get('doctrine_mongodb')
->getRepository('XTradBundle:Traduction')
->findAll();
堆栈跟踪:
in var\cache\dev\doctrine\odm\mongodb\Hydrators\WeBSurgTradBundleDocumentTraductionHydrator.php at line 84 -
if (isset($data['value']) || (! empty($this->class->fieldMappings['value']['nullable']) && array_key_exists('value', $data))) {
$value = $data['value'];
if ($value !== null) {
//Why is it converting it to a string here?
$return = (string) $value;
} else {
$return = null;
}
protected $value = array();
中的 $value
似乎是保留名称。只需将其命名为其他名称即可解决问题。