Hi,

The getIdentity() method is documented to return a mixed value - it
could be an integer (e.g., primary key value) or a string (e.g.,
username) or some kind of object (e.g., table row data). The DbTable
authentication adapter returns an instance of stdClass that represents
the table row data.

I think that the problem we see here is that you are passing an object,
rather than a string, to the logger. If you want to pass the username, then:

$logger->debug($auth->getIdentity());

should instead be more like:

$logger->debug($auth->getIdentity()->username);

Best regards,
Darby

debussy007 wrote:
> Hello,
> 
> When I try to print the identity :
> $auth = Zend_Auth::getInstance();
> $logger->debug($auth->hasIdentity());  // prints 1
> $logger->debug($auth->getIdentity());  // prints exception
> 
> I have the following exception :
> Catchable fatal error: Object of class stdClass could not be converted to
> string in D:\websites\mysite\library\Zend\Log\Formatter\Simple.php on line
> 70
> 
> Though, I think it should returns me the username.
> 
> This is my auth code:
> 
> // in bootstrap
> [...]
> $authAdapter = new MyZend_Auth_Adapter_DbTable($dbAdapter);
> $authAdapter->setTableName('members')
>             ->setIdentityColumn('username')
>             ->setCredentialColumn('password')
>             ->setCodeColumn('code');
> Zend_Registry::set('authAdapter', $authAdapter);
> [...]
> 
> // in authController
> [...]
> $result = $authAdapter->authenticate();
> [...]
> case MyZend_Auth_Result::SUCCESS:
>       $omit = array(
>               'id_member',
>               'password',
>               'email',
>               'date_of_birth',
>               'country',
>               'code',
>               'valid_code'
>       );
>       $data = $authAdapter->getResultRowObject(null, $omit);
>       
>       $logger->debug(print_r($data, true));
>       /* PRINTS :
>       2007-09-20T12:19:22+02:00 DEBUG (7): stdClass Object
>       (
>           [username] => mathi
>       )
>       */
>       
>       $auth = Zend_Auth::getInstance();
>       $auth->getStorage()->write($data);
>       $logger->debug($auth->hasIdentity());
>       $logger->debug($auth->getIdentity());  // <- EXCEPTION
>       
>       break;
> [...]
> 
> Thank you.

Reply via email to