更新:为什么关系在用户是管理员时起作用,但在普通用户时不胜利?

时间:2018-02-10 12:57:07

标签: laravel relationship

我有3个模型:用户,角色和货币。我对他们之间的关系很困惑。

然后用户管理这是有效的:

Auth::user()->currency->symbol)

当普通用户出错时:

  

尝试获取非对象的属性

如果dd(Auth :: user())它显示用户,但无法访问与模型货币的关系。为什么会这样?

用户模型关系:

    public function currency()
{
    return $this->belongsTo(Currency::class, 'currency_id');
}

货币模型关系:

    public function created_by()
{
    return $this->belongsTo(User::class, 'created_by_id');
}

如果您需要额外信息,请与我们联系。

2 个答案:

答案 0 :(得分:0)

用户模型

public function currency()
{
    return $this->belongsTo(Currency::class);
}

货币模型

public function users()
{
    return $this->hasMany(User::class, 'created_by_id');
}

假设您的User模型具有属性currency_id

答案 1 :(得分:0)

$this->belongsTo(TABLE, FORIEGN KEY, TABLE KEY);

参考this

用户模型

public function currency()
{
    return $this->belongsTo(Currency::class, 'currency_id', 'id');
}

货币模型

public function users()
{
    return $this->hasMany(User::class, 'created_by_id', 'id');
}