如何从Laravel 4的控制器函数发送数据到视图来改变页面布局


How to send data from a controller function a view in Laravel 4 to change the page layout

我有一个控制器函数,它根据检查的$id重定向用户。我想做的是,在用户被重定向到的页面上,访问$id的值,这样我就可以显示一个模式或不。像这样:

public function action_session($provider, $id = null) {
if(!is_null($id)) {
            return Redirect::to('/fans/'.Auth::user()->url_tag);
        }
}

我想发送$id变量到'/fans/'.Auth::user()->url_tag视图,这样我的模态要么弹出或不弹出。我该怎么做呢?谢谢你!

你必须用$id:

重定向
return Redirect::to('/fans/'.Auth::user()->url_tag)->with('redirected_id', $id);

然后,在新的请求中,您可以使用:

$id = Session::get('redirected_id');

正如Jason Lewis在评论中所说,它与flash数据有关:http://laravel.com/docs/session#flash-data。基本上,当你将当前请求重定向到一个route/url,并向它发送一些数据时,Laravel会在Session中闪烁这些信息,这样你就可以在下一次请求中获取这些信息。