user()->us_name"等方式获取这些值。到目前为止,没有问题。我想做的是在这里添加一些不在我的表中的值。例如,登录后,将名字和姓氏组合起来,并添加一个名为&q"> 登录后如何为'auth()”函数添加新值?-PHP中文网问答
登录后如何为'auth()”函数添加新值?
P粉354948724
P粉354948724 2023-09-03 13:18:05
0
1
295

我正在使用 Laravel 8 开发一个项目。

我的 Users 表中有一些字段,比如 "us_name","us_surname"。用户登录后,我可以通过 "auth()->user()->us_name" 等方式获取这些值。到目前为止,没有问题。

我想做的是在这里添加一些不在我的表中的值。例如,登录后,将名字和姓氏组合起来,并添加一个名为 "us_fullname" 的新字段,并通过 "auth()->user()->us_fullname" 访问它。我该如何做到这一点?

P粉354948724
P粉354948724

全部回复 (1)
P粉351138462

通过调用auth()->user(),您可以从默认的守卫中获取Authenticatable模型。

让我们看看默认的config/auth.php

<?php return [ 'defaults' => [ 'guard' => 'web', 'passwords' => 'users', ], 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'token', 'provider' => 'users', 'hash' => false, ], ], 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\Models\User::class, ] ] ];

使用这个默认的Laravel配置,您可以得到:

  1. 默认的守卫是web
  2. web守卫提供者(提供Authenticatable)是users
  3. users提供者提供了App\Models\User::class
  4. App\Models\User实现了Authenticatable合同

然后,通过调用auth()->user()- 您将获得App\Models\User::class的实例或null

回答您的问题

您可以向User模型添加任何内容(例如full_name),并将其作为auth()->user()->full_name检索

阅读关于访问器- 使用它,您可以简单地添加计算属性:

class User extends Authenticatable { public function getFullNameAttribute() { return "{$this->first_name} {$this->last_name}"; } }
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责声明 Sitemap
    PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!