2013-04-14 84 views
0

我正在編寫Laravel的Facebook應用程序,它包含一個遊戲,我需要保存最終的分數。 問題是,我需要獲取用戶標識(誰在玩遊戲),以便將獲得的分數保存到數據庫中。Laravel FacebookSDK包無法正常工作

我已經安裝了FacebookSDK捆綁對Laravel的網站,但是當我嘗試去定義它,我得到如下:

應用程序控制器:

<?php 

class App_Controller extends Base_Controller { 

public $restful = true;  

public function get_check() 
{ 
    // Define FbkSDK 
    $facebook = IoC::resolve('facebook-sdk'); 
    // Get UserId 
    $uid = $facebook->getUser(); 

}  

public function get_game() 
{ 
    // Imprimo la pantalla del juego 
}  

} 

錯誤:

Unhandled Exception 
Message: 

Class facebook-sdk does not exist 

Location: 

/home/pablo/htdocs/conamor/CUENTAS/AventuraCenter/pacman/laravel/ioc.php on line 155 

Stack Trace: 

#0 /home/pablo/htdocs/conamor/CUENTAS/AventuraCenter/pacman/laravel/ioc.php(155): ReflectionClass->__construct('facebook-sdk') 
#1 /home/pablo/htdocs/conamor/CUENTAS/AventuraCenter/pacman/laravel/ioc.php(118): Laravel\IoC::build('facebook-sdk', Array) 
#2 /home/pablo/htdocs/conamor/CUENTAS/AventuraCenter/pacman/application/controllers/app.php(10): Laravel\IoC::resolve('facebook-sdk') 
#3 [internal function]: App_Controller->get_check() 
#4 /home/pablo/htdocs/conamor/CUENTAS/AventuraCenter/pacman/laravel/routing/controller.php(325): call_user_func_array(Array, Array) 
#5 /home/pablo/htdocs/conamor/CUENTAS/AventuraCenter/pacman/laravel/routing/controller.php(285): Laravel\Routing\Controller->response('check', Array) 
#6 /home/pablo/htdocs/conamor/CUENTAS/AventuraCenter/pacman/laravel/routing/controller.php(165): Laravel\Routing\Controller->execute('check', Array) 
#7 /home/pablo/htdocs/conamor/CUENTAS/AventuraCenter/pacman/laravel/routing/route.php(153): Laravel\Routing\Controller::call('[email protected]', Array) 
#8 /home/pablo/htdocs/conamor/CUENTAS/AventuraCenter/pacman/laravel/routing/route.php(124): Laravel\Routing\Route->response() 
#9 /home/pablo/htdocs/conamor/CUENTAS/AventuraCenter/pacman/laravel/laravel.php(167): Laravel\Routing\Route->call() 
#10 /home/pablo/htdocs/conamor/CUENTAS/AventuraCenter/pacman/public/index.php(34): require('/home/pablo/htd...') 
#11 {main} 

我無法讓它工作。 我遵循所有安裝說明。

有什麼想法?

謝謝!

回答

2

這聽起來像捆綁尚未開始。

確保該軟件包已在您的application/bundles.php文件中列出並設置爲自動啓動。

return array(
    'facebook-sdk' => array('auto' => true) 
); 

如果這不起作用,然後嘗試手動啓動捆綁預先。

Bundle::start('facebook-sdk'); 

如果你還沒有使用工匠安裝包,然後記住包目錄的名稱應與application/bundles.php文件的密鑰相對應。如果沒有,則設置該包的location

return array(
    'facebook-sdk' => array('auto' => true, 'location' => 'facebook-sdk-path') 
); 

這個位置是相對於bundles目錄。

最後,作爲一種調試措施,您可以檢查IoC容器註冊表以確認(綁定啓動後)facebook-sdk實例正在綁定。

die(var_dump(IoC::$registry)); 

您應該得到一個包含facebook-sdk的轉儲數組。如果它不在那裏,那麼再次檢查前兩個步驟以確保捆綁包已經啓動。