Zend framework Zend从登录表中获取外部ID

Zend framework Zend从登录表中获取外部ID,zend-framework,doctrine,Zend Framework,Doctrine,我使用Zend和Doctrine登录到另一个表,该表还包含一个外来ID。我需要获取此ID,以便在对数据库的条令查询(通过控制器)中使用它,如下所示: $q = Doctrine_Query::create() ->from('Lost_Model_Item i') ->where('i.StatID = ?', 'I need the ID here') $result = $q->fetchArray(); Zend_Aut

我使用Zend和Doctrine登录到另一个表,该表还包含一个外来ID。我需要获取此ID,以便在对数据库的条令查询(通过控制器)中使用它,如下所示:

$q = Doctrine_Query::create()
        ->from('Lost_Model_Item i')
        ->where('i.StatID = ?', 'I need the ID here') 
        $result = $q->fetchArray();
Zend_Auth::getInstance()->getIdentity()->ID
我试过这样做:

$q = Doctrine_Query::create()
        ->from('Lost_Model_Item i')
        ->where('i.StatID = ?', 'I need the ID here') 
        $result = $q->fetchArray();
Zend_Auth::getInstance()->getIdentity()->ID
但这似乎不起作用。我是新来Zend的,在这里有点迷茫。你能帮忙吗

在我使用条令时,我创建了一个适配器,如下所示:

public function authenticate()
   {
    $q = Doctrine_Query::create()
         ->from('Lost_Model_Station u')
      ->where('u.username = ? AND u.password = MD5(?)',
                array($this->username, $this->password)
      );
$result = $q->fetchArray();
if (count($result) == 1) {
  $this->_resultArray = $result[0];
  return new Zend_Auth_Result(
    Zend_Auth_Result::SUCCESS, $this->username, array());
} else {
  return new Zend_Auth_Result(
    Zend_Auth_Result::FAILURE, null, 
      array('Authentication unsuccessful')
  );      
}
  }
你得到了你储存在身份中的东西。您需要在要求用户登录的位置发布代码。因为您没有将ID存储在Zend_Auth使用的会话存储中。基本上就是这样

 $row  = $this->_adapter->getResultRowObject();
 Zend_Auth::getInstance()->getStorage()->write($row);
其中$this->\u适配器

$this->_adapter = new Zend_Auth_Adapter_DbTable();
        $this->_adapter->setTableName('users')
                       ->setIdentityColumn('email')
                       ->setCredentialColumn('password');

使用
getIdentity
获取用户名,然后对
Lost\u Model\u项目和
Lost\u Model\u Station

$q = Doctrine_Query::create()
    ->from('Lost_Model_Item i')
    ->leftJoin('i.Lost_Model_Station u')
    ->where('u.username = ?', Zend_Auth::getInstance()->getIdentity()) 
$result = $q->fetchArray();
这假设存在为
丢失的\u模型\u站定义的条令“hasOne”关系(在基类中):


如何设置身份?当您打印
Zend_Auth::getInstance()->getIdentity()->ID
时返回什么?如果为空,则该值显然不存在!在检查LoginAction函数中的登录是否成功后,我正在尝试获取Id…是的,Id存在。在创建查询之前、创建查询之后以及最后执行查询的var_转储之前,您是否尝试过var_dump Zend_Auth::getInstance()->getIdentity()->Id?var_dump不会给出任何结果。我可能在什么地方遗漏了什么!执行
var_转储(Zend_Auth::getInstance()->getIdentity())返回什么?您是否尝试过
Zend_Debug::dump(Zend_Auth::getInstance()->getIdentity())?我在使用条令。我已经创建了一个适配器。我已经编辑了我的问题。