Mik*_*ike 6 mysql database tags pivot-table laravel
我正在建立一个音乐发现服务.我的问题是:如何将数据插入三向数据透视表 Tag_Track_User ?
我在LaravelSD看到了这个架构
它由六个主要表格(以及其他一些表格)组成: 艺术家,专辑,曲目,标签,用户和Tag_Track_User

艺术家 - >专辑 - >曲目关系很简单,正如您所期望的那样.
标签,曲目和用户都相互关联,因为没有第三个,没有两个可以存在.
艺术家有很多 () 专辑
专辑 hasMany() Tracks和belongsTo()是艺术家
曲目 belongsTo() 专辑
跟踪 belongsToMany() 标签和belongsToMany()的用户
标签 belongsToMany() 跟踪和belongsToMany()一个用户
用户 所属的ToMany() 标签和belongsToMany()一个曲目
用户模型
public function tags()
{
return $this->belongsToMany('Tag', 'tag_track_user', 'user_mdbid', 'tag_mdbid')->withPivot('track_mdbid');
}
/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function tracks()
{
return $this->belongsToMany('Track', 'tag_track_user', 'user_mdbid', 'track_mdbid')->withPivot('tag_mdbid');
}
Run Code Online (Sandbox Code Playgroud)
该标签和跟踪模型包含相同的各自的关系.
所以我的问题是:
如何将数据插入Tag_Track_User表?该tag_track_user表是3路透视表cointaining关于用户所标记的曲目信息.
您必须登录才能标记曲目(这意味着我可以访问用户的ID).当我在包含表单的页面上显示轨道ID时,将访问轨道ID.另一方面标签; 如果它已经存在于tags表中,我想得到它的ID并重新使用它(因为它们是唯一的),如果没有,我想创建它,为它分配一个ID并将其插入tag_track_user_table.
我收到的任何帮助,非常感谢.
出色地:
$tag = Tag::firstOrCreate(array('text' => $tag_text));
TagTrackUser::create(array(
"tag_mdbid" => $tag->mdbid,
"track_mdbid" => $track->mdbid,
"user_mdbid" => Auth::user()->mdbid
));
Run Code Online (Sandbox Code Playgroud)
类似的事情?firstOrCreate顾名思义,其余的就很简单了。
| 归档时间: |
|
| 查看次数: |
2070 次 |
| 最近记录: |