在模型关系上使用“ with”并在基础模型上设置该属性值

时间:2019-11-25 22:12:05

标签: laravel

这是我当前的代码:

class Project extends Model {

    protected $appends = ['user_email'];

    public function user() { 
        return $this->belongsTo('User'); 
    }

    public function getUserEmailAttribute() {
        return $this->user->email ?? 'N/A';
    }

}

$project = Project::find($id);

\\ Now $project has $project->user_email

我想使用with

class Project extends Model {

    protected $with = ['user:email'];

    public function user() { 
        return $this->belongsTo('User'); 
    }

}

$project = Project::find($id);

\\ Now $project has $project->user->email

但是,我希望能够像第一个示例一样简单地访问基本模型上的email属性。有什么方法可以将相关模型的属性附加到源模型?基本上-我想消除对getUserEmailAttribute函数的需要,并且我希望相关模型的key属性位于主要查询的模型上。

0 个答案:

没有答案