在测试开始时,我实例化了一个工厂用户,并对其进行了各种测试。在测试结束时,我运行失败的断言。但是,如果我重新加载User并运行相同的断言,它们就会通过。
很抱歉,此问题的示例。为了说明问题,我在测试中添加了一些调试功能:
dump(get_class($this->user) . ' : ' . $this->user->currentPlan());
$reloadUser = \App\User::find($this->user->id);
dump(get_class($reloadUser) . ' : ' . $reloadUser->currentPlan());
两个转储应该相同,但输出为:
"App\User : "
"App\User : Professional Annual"
方法currentPlan()
:
public function currentPlan()
{
if ($this->subscription('plan')) {
$plan = Plan::where('stripe_id', $this->subscription('plan')->stripe_plan)->first();
return $plan->nickname;
}
return false;
}
我希望能显示问题,但是请问是否不清楚。
TIA
答案 0 :(得分:0)
似乎正在发生某种缓存。这样就可以了。
$this->user = $this->user->fresh();