我目前正在为Symfony2开发一个通用的投票捆绑包,但是无论是对Doctrine2的限制,还是我自己对其功能的理解。
在此捆绑包中,只有一个投票实体,它与 n 其他对象有一对多的关系。我知道如果我有简单的SQL(下面),我会怎么做,但是我在Doctrine2中可以做类似的事情吗?如果没有,您能否为我推荐其他解决方案进行调查?
CREATE TABLE votes (
vote_id int unsigned not null auto_increment,
target_id int unsigned not null,
target_class varchar(64) not null,
vote_value tinyint(1) not null default 0,
PRIMARY KEY (vote_id)
);
CREATE TABLE voteable_entity_a (
-- whatever columns
);
CREATE TABLE voteable_entity_b (
-- whatever columns
);
我注意到有单表继承,我可以使用一个鉴别器列,但这是为了拥有基于最高Vote类的多个对象。这不是我想要的。
最糟糕的是,如果仅仅使用QueryBuilder来回避所有事情会有多么糟糕?
答案 0 :(得分:1)
这实际上并不受支持,之前我有类似的功能请求,但支持这一点而不将细节暴露给域模型是相当棘手的。 Typo3目前使用以下解决方法: