我正在尝试创建 symfony2 应用程序,它将使用以下结构访问 mongoDB 集合:
{
"_id": ObjectId("5239c1c0359bf908058a5071"),
"param2": "test",
"param3": {
"subparam31": 0,
"subparam32": 0,
"subparam33": 0
},
"param4": 1
}
在 symfony 2 中,我创建了一个 .yml 和 php 类。我只正确映射了“_id”、“param2”和“param4”,而不是“param3”的“subparam31”、“subparam32”和“subparam33”。
我使用下一个文件结构进行映射:
参数.mongodb.yml:
Acme\StoreBundle\Document\Params:
db: test
type: document
fields:
id:
id: true
param2:
type: string
param3:
type: mixed
subparam31:
type: float
subparam32:
type: float
subparam33:
type: float
param4:
type: float
参数.php
<?php
namespace Acme\StoreBundle\Document;
class Params
{
protected $param2;
protected $param4;
protected $param3;
protected $subparam31;
protected $subparam32;
protected $subparam33;
}
?>
我哪里错了?如何获取和设置子参数的值?
为了访问 param2、param4 和 id,我在控制器中使用了以下代码:
$parameter = $this->get('doctrine_mongodb')
->getRepository('AcmeStoreBundle:Params')
->find($id);
$parameter2 = $parameter->getParam2();
$parameter4 = $parameter->getParam4();
if (!$format) {
throw $this->createNotFoundException('Not found parameter with id -> '.$id);
}
return array(
"parameter2" => $parameter2,
"parameter4" => $parameter4
);
我希望我足够清楚。提前致谢。