2016-07-05 5 views
0

私はすでにAuth :: login($ user)を使って変数を送信していて、私のルートの配列の中に設定しています。追加の配列を送信したい、私が試みたすべてが失敗した。Laravel ControllerからRoute&Viewにデータを送信する

コードIは

コントローラ

public function callback(){ 
     if(!$this->fb->generateSessionFromRedirect()){ 
      return Redirect::to('/')->with('message', "Error logging into facebook"); 
     } 

     $user_fb = $this->fb->getGraph(); 

     if(empty($user_fb)) { 
      return Redirect::to('/')->with('message', "User Not Found"); 
     } 

     $user = User::whereUidFb($user_fb->getProperty('id'))->first(); 

     if(empty($user)){ 
      $user = new User; 
      $user->name = $user_fb->getProperty('name'); 
      $user->uid_fb = $user_fb->getProperty('id'); 

      $user->save(); 
     } 

     $user->access_token_fb = $this->fb->getToken(); 
     $user->save(); 

     $user_pages = $this->fb->getPages(); 
     // var_dump($user_pages); 

     Auth::login($user); 

     return Redirect::to('/')->with(array('pages' => $user_pages)); 

    } 

ROUTE

Route::get('/', function() 
{ 
    $user = array(); 
    if(Auth::check()) { 
     $user = Auth::user(); 
    } 
    return View::make('hello', array('user' => $user)); 
}); 

を持っているので、私は今、私はたったの$ユーザーへのアクセス権を持って、$ user_pagesを送りたいです。私のビューで$ページのforeachループを実行しようとしましたが、変数を特定できませんでした。だから、私はルートで何かをして、$データを送っているのと同じ方法で送る必要があると推測しています。

ヘルプ

+0

なぜあなたはユーザー '$ data'を呼ぶだろうか?あなたが任意の変数名を思いついたら、あなた自身や他人のためにもっと混乱させます。 – Jonathan

+0

あなたのコードでコントローラメソッド 'callback()'が呼び出されることはありません。宣言されたルートでは、* data *変数(* user *に名前を変更する)だけを返します。ララキャストで初心者向けのビデオを見ることをお勧めします。 – JasonK

+0

が変数名をuserに変更しました。コールバックが正常に動作していますが、私はコード全体を掲載しておらず、この問題の関連コードのみを掲載しています。私のビューに$ user_pagesを送る方法について。 – simba777

答えて

0

withメソッドはセッションにデータをフラッシュするので、それを取得するにはsession('key')を使用する必要があります。

コントローラー:次に

public function callback(){ 
    //....... 
    return Redirect::to('/')->with('pages', $user_pages); 
    //....... 
} 

地球上

Route::get('/', function() { 
    //From session 
    $user_pages = Session::get('pages'); //session('pages'); for laravel >= 5.0 
    $data = array(); 
    if(Auth::check()) { 
     $data = Auth::user(); 
    } 
    return View::make('hello', array('data' => $data)); 
}); 
+0

エラー "未定義の関数セッション()への呼び出し" – simba777

+0

どのバージョンのlaravelを使用していますか? –

+1

'Session :: get( 'pages');'は 'session( 'pages');'の代わりに動作します。 –

関連する問題