私は3つのクラスを持っています。コースはステージで構成されています。ステージはステップで構成されています。
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 からデータを読み込もうとすると: Fatal error: Call to a member function toArray() on a non-object in * *extensions\YiiMongoDbSuite\extra\EEmbeddedArraysBehavior.php 行 104
$arrayOfDocs[] = $doc->toArray();
ステージにステップがない場合、すべて正常に動作します。私は何を間違っていますか?