gpt4 book ai didi

php - 有没有办法在 laravel 模型中访问关系属性作为自己的?

转载 作者:可可西里 更新时间:2023-11-01 00:39:06 24 4
gpt4 key购买 nike

我有 2 个表:usersusers_details

--用户有3列[id,username,password]

-- users_details 有 [id,user_id,name,address]

我为它们中的每一个都建立了模型,其中包含从用户到 users_details 的关系。

    public function details()
{
return $this->hasOne(UserDetails::class, 'user_id', 'id');
}

我的问题来了:有没有办法仅以用户身份访问 UsersDetails 属性。

例如:{{ $user->name }} : {{ $user->address }}而不是 {{ $user->details->name }} :{{ $user->details->address }}

请记住,这些表格只是示例,并没有真正的列范围。我需要它来实现 Laravel/Cashier,但是这个插件需要 [users] 表中的 4 个新列,我想将它们放在 [users_details] 表中。

我还没有尝试过任何东西,因为我真的不知道这是否可行。除了目前我所知道的唯一解决方法是在用户中创建 getNameAttribute 方法:

    public function getNameAttribute()
{
return $this->details->name;
}

最佳答案

我不确定我是否会推荐它,因为它只会给事情的运作方式增添魔力,并且可能在 6 个月后很难理解。

但是您可以在您的用户模型中做类似的事情。

已编辑

public function getAttribute($key)
{
// If attribute exists on the user, return that
return parent::getAttribute($key)
// otherwise fallback to details attribute
?? optional($this->details)->getAttribute($key);
}

关于php - 有没有办法在 laravel 模型中访问关系属性作为自己的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54084916/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com