我知道这必须有一个简单的答案,但我无法弄清楚。泪流满面,我希望这里有人可以提供帮助。
这是我的 YML 模型:
Identity:
columns:
id:
type: integer(10)
primary: true
autoincrement: true
username:
type: string(255)
Profile:
columns:
id:
type: integer(10)
primary: true
autoincrement: true
identity_id:
type: integer(10)
profiletype_id:
type: integer(10)
name:
type: string(255)
relations:
Identity:
local: identity_id
foreign: id
class: Identity
foreignAlias: Profiles
Profiletype:
local: profiletype_id
foreign: id
class: Profiletype
foreignAlias: Profiles
Profiletype:
columns:
id:
type: integer(10)
primary: true
autoincrement: true
type:
type: string(255)
如您所见,生成了3个链接表:
身份
- 可以有多个配置文件
Profile
- 有一个 Identity
- 有一个 Profiletype
Profiletype
- 可以有多个 Profile
现在,在我的代码中,我可以对生成的 Identity 和 Profiletype 模型执行查询。
例如:
$q = Doctrine_Query::create()
->select('i.*')
->from('Identity i');
echo $q->getSqlQuery();
将工作并产生:
SELECT i.id AS i__id, i.username AS i__username FROM identity i
但是,当我在 Profile 表上运行任何查询时,它将不起作用。即使是一个简单的查询,例如
$q = Doctrine_Query::create()
->select('p.*')
->from('Profile p');
echo $q->getSqlQuery();
失败。我尝试将 FROM 中的类名更改为“配置文件”而不是“配置文件”。依然没有。
关于我做错了什么的任何想法。