Php 雄辩的5.4,有没有一种方法?

Php 雄辩的5.4,有没有一种方法?,php,laravel,eloquent,Php,Laravel,Eloquent,我知道最新的Laravel版本已经引入了hasOneThrough,但是我现在无法真正升级。最好的方法是什么 我有一个用户表,我无法关闭它的结构,但我需要为这些用户分配一个角色,因此我创建了一个透视表,我想向我的用户模型添加一个方法来获取角色,而用户只能拥有一个角色 表: 用户用户角色用户分配的角色 我可以使用hasManyThrough,但这需要很多,我希望返回单个模型,而不是集合。您可以使用&relationships组合进行管理,然后通过以下链接访问角色: 因此,在UserAssigned

我知道最新的Laravel版本已经引入了
hasOneThrough
,但是我现在无法真正升级。最好的方法是什么

我有一个
用户
表,我无法关闭它的结构,但我需要为这些用户分配一个
角色
,因此我创建了一个透视表,我想向我的
用户
模型添加一个方法来获取角色,而用户只能拥有一个角色

表:

用户
用户角色
用户分配的角色


我可以使用
hasManyThrough
,但这需要很多,我希望返回单个模型,而不是集合。

您可以使用&relationships组合进行管理,然后通过以下链接访问角色:

因此,在
UserAssignedRole
模型中:

/** UserAssignedRole.php */

public function role()
{
    return $this->belongsTo('App\UserRole');
}
/** User.php */

public function assigned_role()
{
    return $this->hasOne('App\UserAssignedRole');
}

// defining an accessor for your role:
public function getRoleAttribute()
{
    return $this->assigned_role->role;  // <--- Access the role of 'UserAssignedRole'
}
然后在您的
用户
模型中:

/** UserAssignedRole.php */

public function role()
{
    return $this->belongsTo('App\UserRole');
}
/** User.php */

public function assigned_role()
{
    return $this->hasOne('App\UserAssignedRole');
}

// defining an accessor for your role:
public function getRoleAttribute()
{
    return $this->assigned_role->role;  // <--- Access the role of 'UserAssignedRole'
}
/**User.php*/
分配的公共职能\u角色()
{
返回$this->hasOne('App\UserAssignedRole');
}
//为您的角色定义访问者:
公共函数getRoleAttribute()
{
返回$this->assigned_role->role;//role;//name);
//
}

PS1:我强烈建议你使用这些新功能,同时出于安全原因和修复等


PS2:有一个名为的包为您管理这种关系(以及更多关系)。

您想将这种关系用于即时加载吗?谢谢,一旦我们有时间,我会期待升级。