建模 User 和 Rank 模型之间的关系

Modelling the relationship between User and Rank models

我正在使用 Laravel & Eloquent。

我有两个table。

用户

id, username, password, rankId

排名

id, rankName

这两者之间是什么关系?而且,我如何使用 Laravel Eloquent 模型显示这两个模型之间的关系?任何帮助将不胜感激。

我想到了 hasOne,但是,它要求第二个 table(等级)有 users table 的外键。我将如何在 Laravel 中定义这种关系?

如果你在用户模型上,那将属于关系,比如

public function rank()
{
  return return $this->belongsTo('App\Rank', 'rankId', 'id');
}

现在如果你从用户模型查询,你可以得到这样的排名信息,

$user = User::find(1);
var_dump($user->rank->rankName);

现在如果你使用排名模型并且你想让所有用户都处于特定排名,那么你的关系将有很多,就像这样

public function users()
{
    return $this->hasMany('App\User', 'rankId', 'id');
}

现在查询排名,可以通过这种方式获取用户

$ranks = Rank::find(1);
foreach($ranks->users as $user){
var_dump($user->username);
}

现在可能一切都清楚了