2016-08-03 6 views
0

PersistentCollectionに問題があります。PersistentCollectionは初期化されていませんが、SymfonyとDoctrineを使用するデータベース内のデータ

EmdebedDocument Seanceを持っているオブジェクトユーザー(FOSUserbundleユーザークラスを継承)があります。 Seanceにはイベントの配列があります。 私の交霊会クラス:

/** 
* @MongoDB\EmbeddedDocument 
*/ 
class Event extends BaseEvent 
{ 
/** 
* @var integer 
* @MongoDB\Id 
*/ 
protected $id; 

/** 
* @var \DateTime 
* @MongoDB\Field(type="date") 
* @Assert\NotNull() 
*/ 
protected $startDate; 
/** 
* @var \DateTime 
* @MongoDB\Field(type="date") 
* @Assert\NotNull() 
*/ 
protected $endDate; 

は私がして、ユーザからのイベントを与える

/** 
* @MongoDB\EmbeddedDocument 
*/ 
class Seance 
{ 
/** 
* @MongoDB\Id 
*/ 
protected $id; 

/** 
* @MongoDB\EmbedMany(targetDocument="Event") 
*/ 
protected $dispos ; 

/** 
* @MongoDB\Field(type="string") 
*/ 
protected $rayonDeplacement; 

/** 
* @MongoDB\Field(type="string") 
*/ 
protected $lieu; 

/** 
* @MongoDB\Field(type="string") 
*/ 
protected $prix; 

/** 
* @MongoDB\Field(type="string") 
*/ 
protected $nbPersonne; 

そして、私のクラスのイベント:彼らは、データベース内のイベントがありながら

$user->getSeance()->getDispos() 

この関数は空のPersistentCollectionを返します。 。私は空の私のデータが、ArrayCollectionのでmongoDataフィールドを持っている理由私はunderstant dont't dump of result getDispos() method

:私が持っているgetDisposのリターン()メソッドをダンプ

ありがとうございました。

答えて

3

PersistentCollectionは遅延的に初期化されます。パフォーマンス上の理由から、データベースのデータはmongoDataに保持されます。コレクションは、初めてデータを必要とするときに初期化されます(または変更しようとする)。mongoDataに保持されているデータは埋め込みドキュメントに水和され、装飾されたcollに追加されます。このことは皆さんに透過的に起こっています。コレクションをダンプする代わりにコレクションを使用してみてください。

+0

こんにちは、ありがとうございます。文書が戻ってくる問題は、ヌル値でヌル水和している問題です。 – Oneill

+0

どうしたらいいのか分かりませんが、 '$ user-> getSeance() - > getDispos() - > first()'が正しい文書を生成するかどうか確認してください。 – malarzm

+0

Okey it resolve私は問題が解決する理由を理解できません。ご協力ありがとうございました ! – Oneill

関連する問題