想请教一下关于 belongsToMany 多对多关系的一个问题

有两个表User和Tag,我用laravel的关联方法创建了tag_user这个关联表。

但是我现在想存两组关联数据: 一个是用户收藏的TAG, 一个是用户屏蔽的TAG。这两都是多对多的关系,我在User的Model的里面写了这两个方法。

public function tags()
{
    return $this->belongsToMany('Tag');
}

 public function filtertags()
{
    return $this->belongsToMany('Tag');
}

但是得到的只有一组结果.....我数据库方面比较小白.......请问我是不是需要创建另外一个关联表tag_filteruser呢?

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2
hareluya

我想到的是同一个中间表,不同字段。
例如:
User_tag:
id,user_id,user_unlike_id

public function tags()
{
return $this->belongsToMany('Tag','user_tags','id','user_id');
}

public function filtertags()
{
return $this->belongsToMany('Tag','user_tags','id','user_unlike_id');
}

9年前 评论

直接使用

    public function ads()
    {
        return $this->belongsToMany('App\Models\SystemMrg\OperationsCenter\Advert', 'advert_cinema', 'ac_cinema_id', 'ac_ga_id')
            ->where('advert_cinema.deleted_at', null)
            ->where('advert.ga_advert_status', 1);
    }

参考:https://stackoverflow.com/questions/271637...

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!