Laravel 4.1 - $ user-> roles() - >在测试环境中出现detach()问题

时间:2014-03-31 18:49:34

标签: php mysql testing laravel

我有表'用户','角色'和' users_roles'。当我使用user-> roles() - > attach()和detach()时,它在我的本地环境中使用MySQL工作正常。但是当我尝试在我的测试环境(内存/ Sqlite)中执行相同操作时,$ user-> roles() - detach()不起作用。不会抛出任何错误,它只是不会从数据透视表中删除条目。它就像没有开火一样。

我正在使用PHPUnit 3.7

$this->roles()->attach(1);
$count = $this->roles->count();
$this->roles()->detach();

我还尝试过$ this-> roles() - > detach(1)但没有运气。有什么想法吗?

---更新---

我忘记提及的是我正在运行

$count1 = $user->roles->count();
在attach()和detach()之间的

,这似乎是导致问题的原因。为什么在attach()和detach()之间运行count()导致分离不会触发?我更新了上面的代码以反映我的新发现。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。而不是运行$ user-&gt; roles-&gt; count()我将其切换为$ count1 = count(User :: find($ user-&gt; id) - &gt; roles-&gt; toArray()); < / p>

似乎工作正常,但我不知道是否有任何影响。