[英]Relationship between user and store
我需要在用户和许多商店之间建立关系。 我创建了三个模型
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 model 包含什么关系,是 belongstoMany 还是 hasmany?
您可以使用 belongsToMany 关系
在你的 Store model 定义一个方法
public function users() {
return $this->belongsToMany(Users::class, 'user_store', 'user_id', 'store_id');
}
在您的用户 model 中定义一个方法
public function stores() {
return $this->belongsToMany(Stores::class, 'user_store', 'user_id', 'store_id');
}
在我看来你想要一个简单的多对多关系。
为此你只需要两个模型User
和Store
,如果你想对 pivot 表做一些特殊的事情,你只需要StoreUser
否则就没有必要了。
以下是 Laravel 方式:
表结构
stores
id
name
email
phone
info
users
id
name
email
store_user
user_id
store_id
Laravel 除了 pivot 表被称为store_user
,您可以在这里阅读更多相关信息:
要定义此关系,需要三个数据库表:
users
、roles
和role_user
。role_user
表是根据相关的 model 名称的字母顺序派生的,包含user_id
和role_id
列。
Model结构
class User extends Model
{
public function stores()
{
return $this->belongsToMany(Store::class);
}
}
class Store extends Model
{
public function users()
{
return $this->belongsToMany(User::class);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.