2015-12-01 82 views
0

这是我第一次对我的项目实现OAuth。我在github上找到了laravel-5 oriceon/oauth-5-laravel的演练。我正确地执行了所有步骤。然而,当我到达控制器功能我得到一个错误说:oriceon/oauth-5-laravel安装控制器请求错误

Call to undefined method Illuminate\Support\Facades\Request::get() 

这里是我的控制器功能:

public function loginWithFacebook(Request $request) 
{ 
    // get data from request 
    $code = $request->get('code'); 

    // get fb service 
    $fb = \OAuth::consumer('Facebook'); 

    // check if code is valid 

    // if code is provided get user data and sign in 
    if (! is_null($code)) 
    { 
     // This was a callback request from facebook, get the token 
     $token = $fb->requestAccessToken($code); 

     // Send a request with it 
     $result = json_decode($fb->request('/me'), true); 

     $message = 'Your unique facebook user id is: ' . $result['id'] . ' and your name is ' . $result['name']; 
     echo $message. "<br/>"; 

     //Var_dump 
     //display whole array. 
     dd($result); 
    } 
    // if not ask for permission first 
    else 
    { 
     // get fb authorization 
     $url = $fb->getAuthorizationUri(); 

     // return to facebook login url 
     return redirect((string)$url); 
    } 
} 

在你可以看到,我确实添加了正确的供应商和别名应用程序:

'OAuth' => Artdarek\OAuth\Facade\OAuth::class, 
Artdarek\OAuth\OAuthServiceProvider::class, 

在我看来,我称之为导致正确的控制器功能的路线,我不断到达这个错误。这是什么情况?该函数是否应该调用提供者或什么?感谢您看这个堆栈!

回答

1

首先,我希望你的观点不是调用路线 - 这是倒退。直接使用路由来确定控制器,然后使用它来确定并以正确的视图进行响应。

......除此之外,Request是Laravel的一个门面的名称。这就是为什么错误消息表明它正在寻找Illuminate \ Support \ Facades \ Request类中的get()方法。您将需要命名空间您正在使用的请求类,以便它能够使用正确的get()方法。根据您的版本,我会在控制器文件的顶部(位于控制器的命名空间声明之后)use Illuminate\Http\Request;执行此操作。

+0

也许我的意思是有一个按钮里面的视图,有HREF的路线,其中包含的功能? –

+0

@RickiMoore酷。你的问题的答案是否解决了你的问题?仍然有问题使用get()? –

+0

是的,这让我感到困惑。需要或要求使用的其他地方和事物:使用请求; –