【发布时间】:2015-12-10 08:06:45
【问题描述】:
我正在尝试构建一个“facebook 群组”风格的应用程序,其中包含充满成员的群组,每个成员都有一个成员类型(例如管理员、官员、用户..),每个群组都有自己的群组类型(公共、关闭,秘密)。
所以我创建了几个表:
users - (id, name ..)
groups - (id, name, group_type_id ..)
group_types - (id, type)
group_members - (user_id, group_id, membership_type_id)
group_membership_types - (id, type)
我相信这是构建数据库的正确方法(如果我错了,请纠正我)。
现在我需要将其转换为 Eloquent 模型,因此我创建了模型,但在尝试建立它们之间的关系时感到非常困惑,我阅读了有关“pivot”和“hasManyThrough”的信息,并且更加困惑。
这些是我目前创建的模型:
class Group extends BaseModel
{
protected $table = 'groups';
public function Members() {
return $this->belongsToMany('App\GroupMemeber');
}
public function Type() {
return $this->belongsTo('App\GroupType');
}
}
--
class GroupType extends BaseModel
{
protected $table = 'group_types';
protected $guarded = ['id', 'type'];
}
--
class GroupMemebershipType extends BaseModel
{
protected $table = 'group_membership_types';
}
--
class GroupMember extends BaseModel
{
protected $table = 'group_members';
public function User() {
return $this->belongsTo('App\User');
}
public function Group() {
return $this->hasMany('App\Group');
}
public function MembershipType() {
return $this->belongsTo('App\GroupMemebershipType');
}
}
我做得对吗?您将如何创建这些模型?
【问题讨论】:
标签: php mysql laravel-5 eloquent laravel-5.1