我一直在搜索DB Schema的确切映射,如下所示
可以看出product_i18n表有两个复合外键(product_id和locale_id)。
现在,一旦产品和区域设置实体完成,我想将数据(名称和描述)插入到product_i18n表中。
是否有一个类似于使用Doctrine 2的此类映射的示例。或者,如果某个人可以简要概述如何处理这种类型的映射,那么您的信息将受到赞赏。
P.S。如果需要更多关于此的信息,请不要犹豫。
答案 0 :(得分:8)
Doctrine 2本身支持复合键
/**
* @Entity
*/
class ProductI18N
{
/** @Id @Column(type="string") */
private $product;
/** @Id @Column(type="string") */
private $locale
public function __construct($product, $locale)
{
$this->product= $product;
$this->locale= $locale;
}
请记住,在保留模型之前必须先设置复合键:
$productI18N = new ProductI18N("Guanabana", "CR");
$em->persist($productI18N );
$em->flush();
有关您的更多信息,请参阅文档: http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/tutorials/composite-primary-keys.html
答案 1 :(得分:3)
如果您在字段1(id autoincrement)和字段2(指定)中有复合键,请使用:
class ProductI18N
{
/** @Id @Column(type="string") @GeneratedValue(strategy="AUTO") */
private $product;
/** @Id @Column(type="string") @GeneratedValue(strategy="NONE") */
private $locale