Laravel, получить данные с полиморфной таблицей, не обновляющейся после удаления - PullRequest
0 голосов
/ 04 ноября 2018

Я пытаюсь удалить запись в моей таблице отношений, а затем извлечь все записи и вернуть их с 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');
    }

Модель Animals пуста, но это таблица отношений, которая принимает user_id, animal_id animal_type.

1 Ответ

0 голосов
/ 04 ноября 2018

Это вызвано свойством User::$with. Когда вы загружаете пользователя, вы автоматически загружаете отношение cats. Вот почему кошка все еще там после того, как вы удалили ее.

Удалите свойство $with или перезагрузите отношение:

return $user->load('cats')->cats;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...