我正在尝试在我的网站中添加一个多层次的类别。其中一个类别可以有多个孩子,也可以有多个父母。在Laravel中看起来像是多对多关系,我必须使用数据透视表。
因此我创建了一个名为 categories 的表以及一个枢纽表 categories_reltionship ,如下所示。现在我的问题是我将如何与Laravel中的单个表建立这种多对多的关系。
categories table
==================
id title
=== ======
1 title_1
2 title_2
3 title_3
4 title_4
5 title_5
categories_relationship table
==================
parent_id child_id
========== ======
1 2
1 3
4 2
4 3
5 2
5 3
答案 0 :(得分:1)
您可以在<FilePond
acceptedFileTypes={['image/png']}
fileValidateTypeDetectType={
(source, type) => new Promise((resolve, reject) => {
// Do custom type detection here and return with promise
resolve(type);
})
}
/>
模型上使用类似下面的方法:
Category
在//This will get you the list of categories
public function categories()
{
return ($this->hasManyThrough('App\Models\Category', 'App\Models\CategoryRelation', 'child_id', 'id', 'id', 'parent_id'));
}
//This will get you the list of children
public function childs()
{
return ($this->hasManyThrough('App\Models\Category', 'App\Models\CategoryRelation', 'parent_id', 'id', 'id', 'child_id'));
}
模型上:
CategoryRelation
我希望这可以帮助您解决问题
注意:我建议您为many to many关系建立3个表,
答案 1 :(得分:0)
在多对多关系中,您应该有三个表。希望以下示例对您有所帮助。 在上述方案中,我们有三个表,分别具有user,role和支点名称,每个用户可以有多个角色,并且每个角色都独立于许多用户。
user table have my_user_id(optional name) and other need column. role table to have my_role_id (optional name) and other. pivot table includes my_user_id , my_role_id.
在用户模型中,您的代码应如下所示:
class User extends Model
{
public function roles()
{
return $this->belongsToMany('App\Role', 'pivot', 'my_user_id', 'my_role_id');
}
}
在角色模型中,您的代码应如下所示:
class Role extends Model
{
public function users()
{
return $this->belongsToMany('App\User', 'pivot', 'my_role_id', 'my_user_id');
}
}
您还可以参考laravel官方文档: many to many relationships