如何解决用户与商店之间的关系
我需要在用户和许多商店之间建立一种关系。我创建了三个模型
Store Model
id name email phone info
1 xyz xyz@gmail.com 9329292922 Small Store
2 abc abc@gmail.com 9494949449 Some Store
User Model
id name email
1 ewd ewd@gmail.com
2 xcv xcv@gmail.com
User_Store
user_id store_id
1 1
1 2
user_store模型是属于Many还是hasmany的关系包含什么?
解决方法
您可以使用belongsToMany关系
在您的商店模型中定义一个方法
public function users() {
return $this->belongsToMany(Users::class,'user_store','user_id','store_id');
}
在“用户”模型中定义方法
public function stores() {
return $this->belongsToMany(Stores::class,'store_id');
}
,
在我看来,您想要一个简单的many-to-many关系。
为此,您仅需要两个模型User
和Store
,如果要对数据透视表进行特殊处理,则只需要StoreUser
,否则就没有必要了。
以下是Laravel方式:
表结构
stores
id
name
email
phone
info
users
id
name
email
store_user
user_id
store_id
Laravel除了称为store_user
的数据透视表外,您可以阅读有关它的更多信息here:
要定义此关系,需要三个数据库表:
users
,roles
和role_user
。role_user
表是从 相关模型名称的字母顺序,其中包含user_id
和role_id
列。
模型结构
class User extends Model
{
public function stores()
{
return $this->belongsToMany(Store::class);
}
}
class Store extends Model
{
public function users()
{
return $this->belongsToMany(User::class);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。