在我的应用程序中(使用Symfony 1.4和Doctrine开发)我试图让所有用户都基于登录用户的idempresa
。idempresa
位于sf_guard_user_profile
表中这是其架构:
SfGuardUserProfile:
connection: doctrine
tableName: sf_guard_user_profile
columns:
id: { type: integer(8), primary: true }
user_id: { type: integer(8), primary: false }
idempresa: { type: integer(4), primary: false }
relations:
User:
local: user_id
class: sfGuardUser
type: one
foreignType: one
foreignAlias: SfGuardUserProfile
onDelete: CASCADE
onUpdate: CASCADE
我正在尝试使用此查询:
Doctrine_Core::getTable('sfGuardUser')
->createQuery('u')
->leftJoin('u.Profile p')
->where('idempresa = ?', $id_empresa)
->execute();
但是得到这个错误:
未知关系别名个人资料
我的代码有什么问题?
答案 0 :(得分:2)
sfGuardUser
和sfGuardUserProfile
之间的关系不是Profile
,而是SfGuardUserProfile
。因此,您应该在查询构建器中使用:
->leftJoin('u.SfGuardUserProfile p')