加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – Laravel有一个条件关系

发布时间:2020-12-14 19:38:48 所属栏目:大数据 来源:网络整理
导读:我有一个用户模型,每个用户都有一个内部或外部类型.存储在内部和外部用户上的数据非常不同,因此存在单独的UserInternal和UserExternal模型. 我该如何定义这种关系? UserInternal和UserExternal表中有一个键’user_id’,每个用户在其中一个表中都有一个匹配
我有一个用户模型,每个用户都有一个内部或外部类型.存储在内部和外部用户上的数据非常不同,因此存在单独的UserInternal和UserExternal模型.

我该如何定义这种关系? UserInternal和UserExternal表中有一个键’user_id’,每个用户在其中一个表中都有一个匹配的行.

当我检索用户数据时,它总是通过用户模型,但我想要扩展数据.

我该怎么做呢?我试过这个,但它并不总是有效(例如,如果我尝试User :: with(‘data’) – > find(1)它将无法工作,因为$this尚未设置.

在用户模型中:

public function data()
{
    if( $this -> type === 'internal' )
    {
        return $this -> hasOne('UserInternal');
    }
    else
    {
        return $this -> hasOne('UserExternal');
    }
}

解决方法

尝试在获取用户后加载关系:

$user = User::find(1);

if( ! is_null($user))
{
    $user->load('data');
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读