0

私は現在モデルに取り組んでいますが、まだ満足のいくものではありません。別のオブジェクトを参照する単一継承のオブジェクトのセットを取得しました。

class Category
{
    /** @MongoDB\Id(strategy="auto") */
    protected $id;

    /** @MongoDB\Int */
    protected $categoryId;

    /** @MongoDB\String */
    protected $title;
}

class ProductTypeOne extends BaseProductType
{
    /** @MongoDB\Id(strategy="auto") */
    protected $id;

    /** @MongoDb\ReferenceOne(targetDocument="Category") */
    private $category;     

}

私が現在直面している問題は、オブジェクト ProductTypeOne を作成するときに、それが参照するカテゴリを実際に知っていることです。この ProductType では常に同じです。

のような修正パラメーターを設定できますcategory_id = 1が、Sf2 & Doctrine2 内のアーキテクチャでは、エンティティ (MongoDB を使用しているため、ドキュメント) 内からカテゴリ オブジェクトをクエリすることはできません。

class ProductTypeOne 
{

    private $category_id = 5;

    public method getCategory()
    {   
       /** how to query the CategoryObject with ID=5? */
    }
}

事前に感謝します。

4

1 に答える 1

0

次にこれを試してください:

class ProductTypeOne extends BaseProductType
{

    static $DEFAULT_CATEGORY = 5;

    // rest of the code

}

[コントローラーで]挿入時に、カテゴリを設定します。

$product = new ProductTypeOne;

// do whatever you need to fill the instance

$product -> setCategory(
    $this -> getDoctrine() -> getRepository('Category') -> findOneById( ProductTypeOne::$DEFAULT_CATEGORY )
);

// persist $product, beer time

別のアプローチは、 custom を作成ProductTypeOneRepositoryし、そのメソッドにカテゴリを挿入することです。

于 2012-08-24T16:34:14.360 に答える