我有三个班。该课程由阶段组成。阶段由步骤组成。
class Course extends EMongoDocument{
....
public function behaviors()
{
return array(
'embeddedArrays' => array(
'class'=>'ext.YiiMongoDbSuite.extra.EEmbeddedArraysBehavior',
'arrayPropertyName'=>'stages',
'arrayDocClassName'=>'Stage'
),
);
}
}
class Stage extends EMongoEmbeddedDocument{
...
public function behaviors()
{
return array(
'embeddedArrays' => array(
'class'=>'ext.YiiMongoDbSuite.extra.EEmbeddedArraysBehavior',
'arrayPropertyName'=>'steps',
'arrayDocClassName'=>'Step'
),
);
}
class Step extends EMongoEmbeddedDocument{
...
}
在 mongodb 我有数据:
{
"name" : "course1",
"online" : "0",
"author_id" : ObjectId("521df3f1e405688411000029"),
"approved" : false,
"stages" : [
{
"_id" : ObjectId("521dfd84e40568d80900002a"),
"name" : null,
"steps" : null,
"price" : null
},
{
"_id" : ObjectId("5220c648e40568701c000031"),
"name" : null,
"steps" : [
{
"_id" : ObjectId("5220c648e40568701c000032"),
"name" : null
}
],
"price" : null
}
],
"short_description" : "test",
"_id" : ObjectId("521dfd7ce40568d809000029")
}
当我尝试从 mongodb 读取数据时:致命错误:在第 104 行* *extensions\YiiMongoDbSuite\extra\EEmbeddedArraysBehavior.php中的非对象上调用成员函数 toArray()
$arrayOfDocs[] = $doc->toArray();
如果舞台没有步骤,一切正常。我做错了什么?