一个Laravel模型中的多个表

时间:2016-12-24 18:51:01

标签: laravel eloquent

我正在编写一个支持多语言的“模块权限管理”系统。我正在使用三个相关的表格:

modules,modules_trans,modules_permissions

使用单一模型处理Laravel中的所有三个相关表格是否可接受(最佳做法)?

1 个答案:

答案 0 :(得分:2)

根据我的理解,您的关系可以如下

class Language
{
  public function modules()
  {
    return $this->belongsToMany('App\Module');
  }
}

class Permission
{
  public function modules()
  {
    return $this->belongsToMany('App\Module');
  }
}

class Module
{
  public function languages()
  {
    return $this->belongsToMany('App\Language');
  }
  public function permissions()
  {
    return $this->belongsToMany('App\Permission');
  }
}

您的数据库应尽可能遵循 ACID wiki)!所以.... 不!不要混淆东西。如果您的关系如上所述,则至少不是。

因此,您的表格必须如下...

module
id | name | ....

language_module
id | language_id | module_id

module_permission
id | module_id | permission_id