Mates,我正在Laravel编写一个包含游戏的facebook应用程序,我需要保存最终分数。 问题是,我需要获取用户ID(谁在播放')才能将获得的分数保存到数据库中。
我已经在Laravel的网站上安装了FacebookSDK捆绑包,但是当我尝试定义它时,我得到以下内容:
App Controller:
<?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}
我无法让它发挥作用。 我已按照所有安装说明进行操作。
有什么想法吗?
谢谢!
答案 0 :(得分:2)
这听起来好像捆绑尚未启动。
确保捆绑包列在application/bundles.php
文件中,并设置为自动启动。
return array(
'facebook-sdk' => array('auto' => true)
);
如果这不起作用,请尝试事先手动启动捆绑包。
Bundle::start('facebook-sdk');
如果您没有使用Artisan安装捆绑包,请记住捆绑包目录的名称应与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
的数组。如果它不在那里,那么再次检查前两步以确保捆绑已经开始。