Php 以多个属性为主的Laravel 5.1同步方法

Php 以多个属性为主的Laravel 5.1同步方法,php,postgresql,laravel-5.1,Php,Postgresql,Laravel 5.1,我正在使用Laravel5.1中的sync(多对多)方法向数据库中的用户添加关系信息 我的桌子是空的 用户-: id(主键) 名字 电子邮件 标签-: id(主键) 名字 鼻涕虫 用户\u标记\u映射-: 用户id 标签号 作用 计数 我在两者之间定义的关系是多对多的关系 return $this->belongsToMany( tags::class, 'user_tags_mapping', 'user_id', 'tags_id')->

我正在使用Laravel5.1中的sync(多对多)方法向数据库中的用户添加关系信息

我的桌子是空的

用户-:

  • id(主键)
  • 名字
  • 电子邮件
标签-:

  • id(主键)
  • 名字
  • 鼻涕虫
用户\u标记\u映射-:

  • 用户id
  • 标签号
  • 作用
  • 计数
我在两者之间定义的关系是多对多的关系

return $this->belongsToMany(
        tags::class, 'user_tags_mapping',
        'user_id', 'tags_id')->withPivot('function', 'count');
现在我使用sync在这个表中插入值,如下所示

$user->tags()->sync([tags_id => [function, count]]);
现在我的问题是,当我使用相同的标签id和不同的功能时,同步会分离旧的值,因为标签id已经存在

有没有一种方法可以让我使用tags_id和function两者作为参数来同步到function为字符串值的表中


我已经在迁移脚本中将所有三个参数都定义为primary,但仍然不起作用。

我认为可以使用带where子句的attach解决这种情况。。虽然我觉得这不是一种吸引人的方式。