我有一张表格,其中只有其他两个表格的ID,我想要一个n:m的关系,但现在每次我保存一条记录时,如果其中一个ID已被使用。Laravel 5数据透视表只保存第一条记录
我的迁移:
Schema::create('show_user', function(Blueprint $table) {
$table->integer('show_id')->unsigned()->index();
$table->foreign('show_id')->references('id')->on('shows');
$table->integer('user_id')->unsigned()->index();
$table->foreign('user_id')->references('id')->on('users');
});
我的模型:
用户
public function shows()
{
return $this->belongsToMany('App\Show');
}
SHOWS
这就是我如何保存到数据透视表:
User::find($userid)->shows()->sync([$showid, $userid])
当我这样做对用户1(我),展出5,这样可以节省1和5,当我再次尝试相同的用户上显示12,这样可以节省1和12,并删除1和5从前的记录。如果我通过phpMyAdmin手动插入,我可以添加多个记录,但不使用同步。我也尝试过这一点,达到相同的结果:
User::find($userid)->shows()->sync([$showid])
尝试'attach()'而不是'sync()'。 – user2094178