這裏是我的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