не удается получить доступ к удаленному файлу в laravel 8

#php #laravel-8

Вопрос:

я пытаюсь восстановить удаленный файл в общей папке laravel, вот мой код по методу удаления :

   $submissions = Submission::find((int)$id);
  $submissionPath = public_path().'/'.$submissions->submission_path;
  if(File::exists($submissionPath)){
    // delete file :
    File::delete(public_path($submissionPath));

    // delete in database :
    $submissions->delete();
    return ResponseFormatter::success(
      $submissions
      , 'Submission successfully deleted');
  }else{
    return ResponseFormatter::error(null, 'file not found', 404);
  }
 

в настоящее время я знаю, как восстановить мягко удаленное поле в базе данных, но я много борюсь с файлом в хранилище.
кто-нибудь знает, как заставить функцию restore() функционировать? особенно для мягко удаленных ФАЙЛОВ

Комментарии:

1. Я не думаю, что вы можете программно удалить реальный файл в системе. Он либо удален, либо нет. Запись базы данных soft_deleted-это просто еще один столбец в базе данных.

2. мягкое удаление не предназначено для удаления фактического файла. Вы не должны удалять файл, когда пытаетесь его мягко удалить

3. во-первых, убедитесь, что файл также будет мягко удален. проблема, с которой я столкнулся здесь, я не могу связать файл, который был удален программно, вот почему я хочу его восстановить. но у меня нет ни малейшего представления об этом

Ответ №1:

Мягкое удаление применяется только к записям базы данных. Когда модель использует свойство SoftDeletes, она будет использовать столбец deleted_at для определения того, удалена запись или нет. Не существует концепции мягкого удаления файла. Вы можете создать свой собственный, подключив код удаления, чтобы переместить файл в отдельную папку, чтобы его можно было восстановить при восстановлении записи.