Laravel,获取多态表的数据删除后不更新

时间:2018-11-04 14:42:23

标签: php laravel laravel-5 eloquent

我正在尝试删除我的关系表中的一条记录,然后获取所有记录并使用JSON返回它们以显示更新的列表。问题是,当我尝试在删除后获取数据时,它会返回数据,就好像未删除记录一样,但是当我检查记录是否已删除时。

这就是我删除记录的方式。

public function sellCat(Request $request)
{
  $cat = Cat::find($request->pivot['id']);
  $cat->delete();
  $user = Auth::user();

  // This returns the users cats as if the above was not deleted ??
  return $user->cats;
}

User-Model:
public function cats()
    {
        return $this->morphedByMany(Cat::class, 'animals')->withPivot('id');
    }

Cat-Model:
    public function cats()
    {
        return $this->morphToMany('App\User', 'animals');
    }

动物模型为空,但它是一个包含user_id,animal_id animal_type的关系表。

1 个答案:

答案 0 :(得分:1)

这是由User::$with属性引起的。加载用户时,将自动加载cats关系。这就是为什么删除猫后猫还留在那里的原因。

删除$with属性或重新加载关系:

return $user->load('cats')->cats;