从Laravel控制器发送数据到路由和视图
我已经发送一个变量使用Auth :: login($ user)并将其设置在我的路由数组中。想发送一个额外的数组,我试过的所有东西都失败了。从Laravel控制器发送数据到路由和视图
代码,我
控制器
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循环,但没有标识变量。所以我猜我必须在路由中做一些事情,并以与发送数据相同的方式发送它。
任何帮助?
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));
});
错误“调用未定义的函数会话()” – simba777
您使用的是什么版本的laravel? –
'Session :: get('pages');'可以工作而不是'session('pages');'。 –
为什么地球上,你会调用用户'$ data'?如果你想出任意的变量名称,你会让自己和其他人感到困惑。 – Jonathan
我看不到在你的代码中调用控制器方法'callback()'。在声明的路由中,您只返回* data *变量(我将重命名为* user *)。我建议你在Laracast上观看Laravel初学者视频。 – JasonK
已将变量名称更改为用户。和回调工作正常,我只是没有公布整个代码,只有相关的代码为这个问题。关于如何将$ user_pages发送到我的视图。 – simba777