Symfony Mongodb ODM离开加入查询构建器



我有两个odm文档一个是项目包含

class Items {
/**
 * @MongoDBField(name="item_name", type="string")
 */
protected $itemName;
}

和另一个文档是

class ItemLocation {
    /**
     * @var
     * @MongoDBReferenceOne(targetDocument="Items")
     */
    private $item;
    /**
     * @MongoDBField(name="priority", type="integer")
     */
    protected $priority;
    /**
     * @var
     * @MongoDBReferenceOne(targetDocument="Location")
     */
    private $location;
}

我如何使所有物品都与项目位置连接在一起,该项目位置按位置和优先级订购。

为了使所有项目与项目位置一起使用,您可以使用iNversedby和mappedby选项。

文档项目将是这样:

class Items {
/**
 * @MongoDBField(name="item_name", type="string")
 */
protected $itemName;
/**
 * @MongoDBReferenceMany(targetDocument=ItemLocation::class, mappedBy="item")
 */
private $items_items;
}

文档itemlocation将是这样的:

class ItemLocation
{
    /**
     * @var
     * @MongoDBReferenceOne(targetDocument="Items", inversedBy="items_items")
     */
    private $item;
    /**
     * @MongoDBField(name="priority", type="integer")
     */
    protected $priority;
    /**
     * @var
     * @MongoDBReferenceOne(targetDocument="Location")
     */
    private $location;
}

为了生成getter和setter使用:

php bin/console doctrine:mongodb:generate:documents appBundle

控制器将是这样的:

$dm = $this->get('doctrine_mongodb')->getManager();
$repository = $dm->getRepository('Items:Categorie');
$i = $repository->findOneBy(array('id' => 'example'));
$items = $i->getItemsItems();

在此处阅读更多。

相关内容

  • 没有找到相关文章

最新更新