2015-12-01 52 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

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