有没有办法在学说2中使用引用列名?

时间:2011-03-30 10:17:18

标签: orm doctrine-orm

我需要在一个教义2模型中引用一个值(以前创建的entites Id)来引用列,例如

/**
 * @Entity @Table(name="products")
 */
class product {

    /**
    * 
    * @ManyToOne(targetEntity="category")
    */
    protected $category;

    public function assignCategoryId($id) {
        $this->category_id=$id;
    }


}

我假设category_id由doctrine 2创建为referance列名, 不要问我为什么要分配id而不是对象本身,因为它必须是这样的。有没有办法做到这一点 ?有什么想法吗?

2 个答案:

答案 0 :(得分:3)

虽然@ Orbling的答案是正确的,但实际上您不必从数据库加载实体。相反,您可以使用参考:

// method on Product entity
public function setCategory(Category $category)
{
    $this->category = $category;
}

// then set the category on the product
$product->setCategory($entityManager->getReference('category', $categoryId));

您可以找到documentation here

答案 1 :(得分:0)

为此,您可以创建一个category实体并将其分配给关系属性。

$category = $entityManager->find('category', $categoryID);

$product = new product();
$product->category = $category;

这会创造我相信的关系。