我有一个多态的多对多User
/ Location
-Group
关系,但我有时间让基本的单元测试通过。
/** @test */
public function it_can_have_groups()
{
$user = factory(User::class)->create();
$group = factory(Group::class)->create();
$user->addToGroup($group);
$this->assertCount(1, $user->groups); // true
$user->removeFromGroup($group);
$this->assertCount(0, $user->groups); // false
}
这些方法只是根据文档attach
调用和:detach
要删除多对多关系记录,请使用分离方法。detach 方法会从中间表中删除相应的记录;但是,这两个模型都将保留在数据库中
public function addToGroup(Group $group)
{
$this->groups()->attach($group->id);
}
public function removeFromGroup(Group $group)
{
$this->groups()->detach($group->id));
dump($group->users()); // []
}
所以它似乎有效(?),但仅从团体方面来看,断言仍然失败。为什么,我应该做些什么不同的事情?