想请教一下关于 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呢?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 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');
}

10年前 评论

直接使用

    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...

6年前 评论

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