将数据从Laravel Controller发送到Routes&视图

时间:2016-07-05 18:33:46

标签: php laravel

我已经使用Auth :: login($ user)发送变量并将其设置在我的路由中的数组中。想要发送一个额外的阵列,我试过的一切都失败了。

我有代码

控制器

Hashtable

ROUTE

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));

    }

所以我想发送$ user_pages,现在我只能访问$ user。试图在我的视图中为$ pages运行foreach循环,但是没有识别变量。所以我猜我必须在路线上做一些事情并以与发送$ data相同的方式发送它。

任何帮助?

1 个答案:

答案 0 :(得分:1)

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));
});