首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向Laravel的auth()->user()对象+它的关系中添加更多的数据?

如何向Laravel的auth()->user()对象+它的关系中添加更多的数据?
EN

Stack Overflow用户
提问于 2018-02-15 12:10:21
回答 2查看 3.2K关注 0票数 4

我的user模型有名为person_id的外键引用,它引用了people表中的单个person

当我死了&转储经过身份验证的用户(dd(auth()->user()))时,我得到:

代码语言:javascript
复制
{"id":1,"email":"foo@bar.baz","is_enabled":1,"person_id":3,"created_at":"2017-12-12 10:04:55","updated_at":"2017-12-12 10:04:55","deleted_at":null}

我可以通过调用auth()->user()->person来访问person,但是它是一个原始模型。person的演示器不适用于它,因此我不能在auth用户的个人上调用演示者方法,因为我不知道在哪里调用我的演示者。

哪里是调优auth()->user对象及其关系的最佳位置,以便我可以在它们上应用特定的模式?

谢谢,Laravel 5.5.21

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-15 12:12:54

使用load()方法:

代码语言:javascript
复制
auth()->user()->load('relationship');
票数 4
EN

Stack Overflow用户

发布于 2018-02-15 12:26:34

您可以使用全球范围

代码语言:javascript
复制
<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    public function person()
    {
        return $this->belongsTo(Person::class);
    }

    /**
     * The "booting" method of the model.
     *
     * @return void
     */
    protected static function boot()
    {
        parent::boot();

        static::addGlobalScope('withPerson', function (Builder $builder) {
            $builder->with(['person']);
        });
    }
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48806968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档