Laravel 中多对多关系中连接表的命名约定
Posted
技术标签:
【中文标题】Laravel 中多对多关系中连接表的命名约定【英文标题】:Naming convention for join tables, in a many to many relationship, in Laravel 【发布时间】:2016-12-28 13:12:16 【问题描述】:我有 3 张桌子。
前两个表是 Groups 和 Accounts。
一个帐户可以属于多个组。
一个组可以有多个帐户。
换句话说,它是多对多关系。
因此我需要第三张表,即连接表
Laravel 中这个连接表的推荐命名约定是什么(或者可能是一般性的)。
是否有任何命名约定?
我打算将其称为“GroupsAccountAssignment”。
【问题讨论】:
应该是account_group
【参考方案1】:
数据透视表的名称应该是account_group
。
如 laravel 中给出的docs
要定义这种关系,需要三个数据库表:用户、 角色和角色用户。 role_user 表派生自 相关型号名称的字母顺序,并包含 user_id 和 role_id 列。
不过,您始终可以覆盖默认命名约定,如下所示: 帐户模型:
return $this->belongsToMany('App\Group', 'GroupsAccountAssignment', 'account_id', 'group_id');
【讨论】:
那么什么是laravel命令来制作模型和迁移。我使用./artisan make:model AccountGroup -m
,但这将创建一个名为account_groups
的表。
事实上在这种情况下,我什至需要制作第三个模型吗?
不..你不需要创建第三个模型
Laravel 将处理没有模型的关系以上是关于Laravel 中多对多关系中连接表的命名约定的主要内容,如果未能解决你的问题,请参考以下文章