Показать Laravel SoftDeleted Models - PullRequest
       7

Показать Laravel SoftDeleted Models

0 голосов
/ 26 февраля 2020

У меня возникла проблема, я не уверен, что это не особенность. Проблема заключается в следующем. Я создал базу данных устройств, где пользователь может создавать, манипулировать, мягко удалять и удалять устройства.

На моей странице индекса я могу показать все устройства, даже программно удаленные (как и должно быть). Экран

Но когда я нажимаю на устройство (показать метод), чтобы просмотреть подробную информацию об устройстве, я получаю 404 на устройствах с программным управлением.

При запросе модели через Tinker я получаю модель. Когда я удаляю метку времени Удален_вата, я могу получить доступ к информации об устройстве. Так что, похоже, я не могу получить доступ к программным моделям с помощью метода show.

Я ищу в Интернете, но нахожу только -> withTrashed () в моем запросе. Но для метода show у меня нет запроса на само мое устройство, потому что оно входит в параметр. Кажется, сам метод не получает никакого «устройства» в качестве параметра. Можно ли как-то изменить это поведение, чтобы я мог сначала просмотреть устройство с программным удалением, прежде чем восстанавливать его. Или я пропустил какой-то флаг или ссылку в другом файле?

Вот мой метод показа:

public function show(Device $device)
  {
    $connected_devices = Device::where('connected_to', $device->id)->get();
    $comments = DeviceComment::where('device_id', $device->id)->orderBy('created_at', 'desc')->get();
    return view('devices.show', ['device' => $device, 'connected_devices' => $connected_devices, 'comments' => $comments]);
  }

Но я предполагаю, что мне нужно что-то раньше, потому что, когда я добавляю 'dd' в первая строка не показывает мой дд я все еще получаю 404.

С уважением, Майк

1 Ответ

0 голосов
/ 26 февраля 2020

Полагаю, Laravel возвращает 404, потому что перед тем, как перейти к контроллеру, он пытается загрузить вашу модель. По умолчанию запрос не имеет метода -> withTrashed (), и вы должны изменить запрос самостоятельно.

Чтобы четко понять, как он работает, ознакомьтесь с документацией о Явные привязки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...