我正在使用PHP的Laravel框架构建一个书签应用程序,并希望在Laravels ORM中生成一些数据透视表。
我的数据库有这些表需要彼此关系:
有人可以帮助定义我需要添加到每个模型和表中的方法,以便为下面描述的Pivot表创建和功能创建吗?
SQL查询我需要能够通过这些调用获取记录:
与用户相关
与bookmark_tag_lists相关
与bookmark_tags相关
用户
书签
bookmark_tags
id
users table
列相关
id
bookmarks table
列相关
id
bookmark_tag_lists table
列相关
bookmark_tag_lists
*
答案 0 :(得分:1)
用户模型:
public function bookmarks() {
return $this->hasMany(Bookmark::class);
}
public function bookmarkTags() {
return $this->hasMany(BookmarkTag::class);
}
public function bookmarkTagLists() {
$bookmarkTags = $this->bookmarkTags;
$bookmarkTagLists = array();
foreach ($bookmarkTags as $bookmarkTag) {
$bookmarkTagLists[] = $bookmarkTag->bookmarkTagList;
}
return array_unique($bookmarkTagLists);
}
书签型号:
public function user() {
return belongsTo(User::class);
}
public function bookmarkTags() {
return bolongsToMany(BookmarkTag::class);
}
public function tags() {
return hasMany(BookmarkTag::class);
}
BookmarkTag模型:
public function bookmarks() {
return belongsToMany(Bookmark::class);
}
public function user() {
return belongsTo(User::class);
}
public function bookmarkTagList() {
return $this->belongsTo(BookmarkTagList::class);
}
BookmarkTagList模型:
public function bookmarkTags() {
return hasMany(BookmarkTag::class);
}