我使用Laravel构建了一个应用程序,这对我来说很新,并且卡在了模型定义中
我有两个表USERS和ACTIONS。
1)用户可以创建"动作"或许多行动
2)用户也可以是由另一个用户创建的动作的成员。
因此,如果我没有错,第一个关系是一对一关系(用户可以创建许多操作,一个操作只能由一个用户创建) 第二个是多对多(许多用户可以成为许多行动的成员)
我不知道laravel是否允许这样做,或者我错过了什么
感谢大家
答案 0 :(得分:1)
可以在同一个表之间建立多个关系。
以下关系定义适合您:
class User extends Model {
public function actions_created() {
return $this->hasMany(Action::class, 'creator_id');
}
public function actions() {
return $this->belongsToMany(Action::class);
}
}
class Action extends Model {
public function creator() {
return $this->belongsTo(User::class);
}
public function users() {
return $this->belongsToMany(User::class);
}
}
确保您有 action_user 表来存储用户和操作之间的多对多关系。它应该有3列:id,user_id和action_id。