我需要在一个教义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而不是对象本身,因为它必须是这样的。有没有办法做到这一点 ?有什么想法吗?
答案 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;
这会创造我相信的关系。