如何从Zend_Auth获取用户ID

时间:2014-12-25 18:28:29

标签: php zend-framework

使用zend获取user_id时遇到了很大的问题..

我的身份验证登录代码:

if($form->isValid($this->getRequest()->getPost())){
        $adapter = new Zend_Auth_Adapter_DbTable(
                null,
                'sprzedawca',
                'email',
                'haslo',
                'MD5(CONCAT(?, salt))'
        );

        $adapter->setIdentity($form->getValue('email'));
        $adapter->setCredential($form->getValue('haslo')); 

        $auth = Zend_Auth::getInstance();
        $wynik = $auth->authenticate($adapter);

        if($wynik->isValid()){
            //return $this->_helper->FlashMessenger('Pomyślnie zalogowano');
            return $this->_helper->redirector(
                    'index',
                    'sprzedawca',
                    'default'
            );

现在,当我尝试使用:

编写用户ID时
Zend_Auth::getInstance()->getIdentity()

我只获得'用户名',但我想获得user_id

Zend_Auth::getInstance()->getIdentity()->user_id

也不起作用..

3 个答案:

答案 0 :(得分:0)

我设法通过谷歌搜索获得此功能,试一试。

Zend_Auth::getInstance()->getIdentity()->User_ID

答案 1 :(得分:0)

好吧,我没有在登录时存储项目

应该是:

if($wynik->isValid()){
   $storage = $auth->getStorage();
   $storage->write($adapter->getResultRowObject('sprzedawca_id'));

现在效果很好

答案 2 :(得分:0)

我现在无法看到您的数据库方案,但我可以告诉您这对我有用。

<?php 

    $auth = Zend_Auth::getInstance();
    $userId = $auth->getIdentity()->id;//user_id OR id depending your primary key of the user table.
    echo $userId;

 ?>

注意: - $ userId = $ auth-&gt; getIdentity() - &gt; id; // id必须写成,因为它是你的用户表,其他明智的赢得了