试图只让用户使用相同的idempresa

时间:2013-06-12 03:12:33

标签: symfony1 symfony-1.4 sfdoctrineguard

在我的应用程序中(使用Symfony 1.4和Doctrine开发)我试图让所有用户都基于登录用户的idempresaidempresa位于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();

但是得到这个错误:

  

未知关系别名个人资料

我的代码有什么问题?

1 个答案:

答案 0 :(得分:2)

sfGuardUsersfGuardUserProfile之间的关系不是Profile,而是SfGuardUserProfile。因此,您应该在查询构建器中使用:

 ->leftJoin('u.SfGuardUserProfile p')