我的中间件类似于Auth.它检查URL模式(例如:/ rest/*),然后在请求中查找令牌,从数据库中检索其对应的用户.之后,我想将该用户保存在变量中,以便稍后可以在以下任何控制器中返回它.什么是最好的方式?
中间件:
public function handle($request, Closure $next)
{
$token = Input::get("token");
// get user data from database
$user = User::get_user_from_token($token);
// ?? -> How to pass $user to controller, so that ..
return $next($request);
}
Run Code Online (Sandbox Code Playgroud)
在控制器中:
public function profile_save() {
// I get the user back here without querying again
$user = ???
}
Run Code Online (Sandbox Code Playgroud)
我会将数据刷新到会话中.当您闪存数据时,它只会保留到下一个请求.
在你的中间件添加
Session::flash('user', $user);
Run Code Online (Sandbox Code Playgroud)
不要忘记在中间件的顶部添加它
use Session;
Run Code Online (Sandbox Code Playgroud)
然后,只要您需要访问您的用户使用
Session::get('user');
Run Code Online (Sandbox Code Playgroud)
以下是参考文档的链接 http://laravel.com/docs/5.0/session#flash-data