Doctrine找到没有外键的相关记录

时间:2014-10-06 20:40:59

标签: php symfony doctrine-orm

我有两个由CMS创建的预先存在的表。我已经在Symfony2中映射了它们,我正在尝试在两个表之间建立关系,但我现在注意到CMS在没有外键的情况下创建了这些表。此表table_uploads有一个列,其他每个表都与名为column_table_namecolumn_record_num相关联。

假设我们有三个表格table_studentstable_uploadstable_teachers,表格table_uploads的值为studentsteachers中的column_table_name显示其与其他两个表的关系以及column_record_num中与另一个表的主键对应的数字。但是,这三个表中都没有实际定义的外键。

在Symfony,我想打电话给一张桌子

$students = $this->getDoctrine()->getRepository('SchoolBundle:Students')->findAll();

然后以这样的方式加载来自另一个表的相关记录(我知道select_related实际上并不存在,但这基本上是我想要创建的功能)

$students->select_related()

如果没有外键,这是否可行?我能想到的唯一方法是从$students获取列值并使用这些值运行另一个查询到其他表并合并两个结果。

1 个答案:

答案 0 :(得分:0)

您可以创建一个可以连接不相关表的自定义存储库方法。 DQL join between unrelated entities?

相关问题