如何在其构造函数中为laravel控制器类定义全局变量

时间:2017-01-27 11:19:17

标签: php laravel controller laravel-5.3

我想在这里为变量$user_detail分配一些值,从数据库中提取以在整个控制器类中使用,例如用户的详细信息。它的Laravel 5.3

private $user_detail;
public function __construct(){
    $this->user_detail=User::find(Auth::id());
}
public function index(){
    return $post_data=$this->user_detail;
}

从上面的代码我得到一个空白的屏幕。 我怎样才能做到这一点,还是有更好的方法呢?请建议。 感谢

2 个答案:

答案 0 :(得分:2)

您正在尝试获取当前经过身份验证的用户并将其传递到某处。但事情是Laravel已经为你做了,你可以使用auth()->user()对象从应用程序的任何部分访问经过身份验证的用户:

{{ auth()->user()->name }}
{{ auth()->user()->email }}

答案 1 :(得分:0)

您返回初始化,这就是您看到空白页面的原因。你应该做的是初始化变量并在之后返回变量。你的代码看起来像这样。

public function index() {
    $post_data = $this->user_detail
    return $post_data;
}

这将首先初始化您的变量,然后返回变量。

但是像@alexeymezenin所说,您已经可以使用auth()->user()在应用程序的任何位置获取登录的用户对象。