0

仲間、私はゲームで構成される Facebook アプリケーションを Laravel でプログラミングしており、最終スコアを保存する必要があります。問題は、達成したスコアを DB に保存するために、(誰がプレイしているかの) ユーザー ID を取得する必要があるということです。

Laravel の Web サイトにある FacebookSDK バンドルをインストールしましたが、定義しようとすると、次のようになります。

アプリ コントローラー:

<?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('app@check', 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}

私はそれを働かせることができません。すべてのインストール手順に従いました。

何か案が?

ありがとう!

4

1 に答える 1

2

これは、バンドルが開始されていないように聞こえます。

バンドルがapplication/bundles.phpファイルにリストされていて、自動開始に設定されていることを確認してください。

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

それが機能しない場合は、事前に手動でバンドルを開始してみてください。

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

Artisan を使用してバンドルをインストールしていない場合は、bundles ディレクトリの名前が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。そこにない場合は、最初の 2 つの手順をもう一度チェックして、バンドルが開始されていることを確認します。

于 2013-04-14T03:35:55.727 に答える