如何在laravel 5.4中获取当前用户ID

Man*_*san 22 php laravel laravel-5

我在Laravel 5.4中使用此代码来获取当前登录的用户ID

    $id = User::find(Auth::id());
    dd($id);
Run Code Online (Sandbox Code Playgroud)

但我收到"空"

Lae*_*rte 26

你必须调用user()方法:

$id = \Auth::user()->id;
Run Code Online (Sandbox Code Playgroud)

或者,如果您只想获得模型:

$user = \Auth::user();
Run Code Online (Sandbox Code Playgroud)


Ami*_*esh 25

您可以通过Auth Facade访问经过身份验证的用户:

use Illuminate\Support\Facades\Auth;

// Get the currently authenticated user...

$user = Auth::user();

// Get the currently authenticated user's ID...

$id = Auth::id();
Run Code Online (Sandbox Code Playgroud)

您可以通过Illuminate\Http\Request访问经过身份验证的用户

use Illuminate\Http\Request;
public function update(Request $request)
{
     $request->user(); //returns an instance of the authenticated user...
     $request->user()->id; // returns authenticated user id. 
}
Run Code Online (Sandbox Code Playgroud)

通过Auth帮助函数:

auth()->user();  //returns an instance of the authenticated user...
auth()->user()->id ; // returns authenticated user id. 
Run Code Online (Sandbox Code Playgroud)


Mah*_*our 7

使用助手:

auth()->user()->id ;   // or get name - email - ...
Run Code Online (Sandbox Code Playgroud)

使用外观:

\Auth::user()->id ;   // or get name - email - ...
Run Code Online (Sandbox Code Playgroud)

使用DI容器:

use Illuminate\Auth\AuthManager;
class MyClass
{
    private $authManager;
    public __construct(AuthManager $authManager)
    {
        $this->authManager = $authManager;
    }
}
Run Code Online (Sandbox Code Playgroud)