如何将登录用户数据传递到Laravel控制器

9
我是在 Laravel 5.4 上工作的,我已经在客户端使用了 auth 进行用户登录。现在我想在控制器中获取已登录用户的详细信息。通过编写以下代码,在视图中我得到了如下结果:
{{ Auth::user()->name }} // this works on view page only.

请推荐带有代码的库文件。 我想在登录后显示一些用户数据,如姓名、年龄、出生日期等。


你至少在提问之前查看了文档吗? - tompec
10个回答

28

laravel的Auth Facade用于获取已验证用户的数据。

$user = Auth::user();
print_r($user);

这将适用于你的控制器和视图,但你需要将其包含在中。

use Illuminate\Support\Facades\Auth;

7

只需使用助手函数,您无需实例化或导入任何类。

$user = auth()->user();

接着执行dd($user);,你将得到关于用户的完整数据。

然后可以提取所需信息。

$user->name

etc...


3
这应该可以工作。
use Illuminate\Support\Facades\Auth;

// Get the currently authenticated user...
$user = Auth::user();

但你必须使用use

1
谢谢你的帮助。 - Anand Maurya

2
拉拉维尔有相关的助手函数。您可以在任何地方使用auth()。例如:
auth()->user()->name

或者检查是否已经认证:

if(! auth()->user()){}

2

您可以在任何控制器中使用以下方法访问用户:

$user = Auth::user();

通过进行以下操作,您应该能够获取用户的详细信息:

$user_id = $user->id; //or Auth::user()->id;
$user_email = $user->email; // or Auth::user()->email;

在此处查看更多详细信息:https://laravel.com/docs/5.4/authentication#retrieving-the-authenticated-user。该文档涉及到it技术中的身份验证和用户认证的相关内容。

2
您可以使用 auth()->user->name

2

使用门面模式

use Illuminate\Support\Facades\Auth;

并且
$user = Auth::user();

注意: 您可以在这个库中调用特定的列,如$user = Auth::user()->name;->address等。


0

$user = Auth::user();

这段代码可以将当前用户赋值给变量$user。


0

为了进行身份验证,我们可以在控制器中使用以下中间件

public function __construct()
{
    $this->middleware('auth');
    
}

然后在你的函数中写入$user = Auth::user();


0
这个方法有效,但是在 blade.php : 文件中:
@auth
    <form action="/registration" method="post" enctype=multipart/form-data>
        @csrf
      <div class="form-floating">
        <input id="email" name="email" type="email" placeholder="Email" value="{{ auth()->user()->email }}" readonly>
      </div>
    </form>
@endauth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接