我在下面定义了ManyToOne关系。
持久化拥有方对象,其中设置了反转对象,导致在拥有方的数据库中保存行,其中列我希望具有 id 外键(整数(的值,而不是保存反转表端的名称(字符串(字段。
换句话说:
列 iptra_documents.document_category_id 包含来自 iptra_document_category.name 的值。我希望在 iptra_documents.document_category_id 中有 iptra_document_category.id 值
拥有方:
/**
* @ORMTable(name="iptra_documents")
*/
class IptraDocuments
{
/**
* @var int
*
* @ORMColumn(name="document_id", type="integer", unique=true)
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
private $documentId;
/**
* @var IptraDocumentCategory
* @ORMColumn(name="document_category_id")
* @ORMManyToOne(targetEntity="AppBundleEntityIptraDocumentCategory", inversedBy="id")})
*/
private $documentCategory;
//.....
public function setCategory(IptraDocumentCategory $documentCategory)
{
$this->documentCategory = $documentCategory;
}
反面:
/**
* @ORMEntity
* @ORMTable(name="iptra_document_category")
*/
class IptraDocumentCategory
{
/**
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
* @ORMColumn(name="id", type="integer")
*/
private $id;
/**
* @ORMColumn(name="parent_id", type="integer")
*/
private $parentId;
/**
* @ORMColumn(name="name", type="string")
*/
private $name;
/**
* @ORMOneToMany(targetEntity="AppBundleEntityIptraDocuments", mappedBy="documentCategory")
*/
private $iptraDocuments;
根据文档,您不需要@ORMColumn
但@ORMJoinColumn
定义"许多"方面
/**
* @var IptraDocumentCategory
*
* @ORMJoinColumn(name="category_id", referencedColumnName="id")
* @ORMManyToOne(targetEntity="AppBundleEntityIptraDocumentCategory", inversedBy="id")})
*/
private $documentCategory;