我用Laravel构建了一个应用程序,这对我来说是新的,在模型定义上卡住了。
我有两个表USERS和ACTIONS。
1)用户可以创建一个"动作"或多个动作。
2)用户也可以是由另一个用户创建的操作的成员
所以如果我没有错的话,第一个关系是一对多关系(一个用户可以创建多个操作,一个操作只能由一个用户创建)第二个是多对多(多个用户可以是多个操作的成员)
我不知道laravel是否允许这样做,或者我可能错过了什么
感谢大家
相同的表之间可以有多个关系。
下面的关系定义应该适合您:
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。