我有两个表A和B.A在B中有一个或多个寄存器。 我想加入两个表并提取有关A的所有信息。
我这样做:
的schema.yml
A:
fields.....
B:
fields...
relations:
A: { onDelete: CASCADE, local: a.id, foreign: b.id, foreignalias: AB }
我试着这样做......
$q = Doctrine_Query::create()
->from('A a')
->leftJoin('a.AB b')
->where('a.field = "D"')
->andWhere('b.codzon = ?', $this->cp);
它打印错误:未知关系别名AB 我做错了什么?
答案 0 :(得分:4)
您的查询似乎没问题,错误在您的定义中。你需要在两边定义关系:A和B.我对YML不太满意,但看起来应该是这样的:
A:
relations:
B:
local: id
foreign: id
foreignAlias: AB
foreignType: many
type: one
另请参阅http://www.doctrine-project.org/documentation/manual/1_0/ru/yaml-schema-files#relationships:one-to-many了解detect_relations选项。
答案 1 :(得分:0)
从架构中删除表名:
...
A: { onDelete: CASCADE, local: id, foreign: id, foreignalias: AB }
...