这里是我的SessionManager.php
代码:调用非对象的成员函数 - PHP
private function generateAuthToken($user)
{
$bits = '';
$fp = @fopen('/dev/urandom', 'rb');
if ($fp !== false) {
$bits .= @fread($fp, 128);
@fclose($fp);
}
return sha1($bits . time() . microtime() . $user->getUsername());
}
我得到这个错误:
Fatal error: Call to a member function getUsername() on a non-object in /home/shwetanka/src/Practo/PvrBundle/Manager/SessionManager.php on line 49
当我做var_dump($user);
权前问题行我正在打印完整的用户对象。我无法理解这个错误的原因。该功能存在于用户类中。即使我尝试调用该类的任何其他函数,即使那样我也会得到该函数的相同错误。我是新来的PHP和难以调试这个问题。
另外$ user是用户实体的对象。我使用Symfony2的这个对象是通过使用该还给我:
$ur = $this->getDoctrine()->getRepository('PractoPvrBundle:User');
$user = $ur->findBy(array('email' => $email));
如果$用户不是一个对象,我敢打赌,这是一个数组(基于该findBy()方法名称的语义)。试试我的答案,并让我们知道如果不是这样。 – 2012-07-13 23:19:12