在此处使用存储库、事件或服务提供商?

Use a repository, event or service provider here?

我在UploadController中有这个功能,用来取消上传,我正在努力改进它。

这个 "File::delete..block" 在我的应用程序中存在两次。例如,将此块从控制器中排除是否有意义?如果是,我应该使用什么,RepositoryService ProviderEvent?

public function postDelete(Request $request)
{
    $filename = $request->input('filename');

    $upload = Upload::where('filename',$filename)->where('accepted',0)->firstOrFail();

    File::delete('img/uploads/'.$filename.'_o.jpg');
    File::delete('img/uploads/'.$filename.'.jpg');
    File::delete('img/uploads/'.$filename.'_zoom.jpg');
    File::delete('img/uploads/'.$filename.'_tn.jpg');
    File::delete('img/uploads/'.$filename.'_250.jpg');
    File::delete('img/uploads/'.$filename.'_50.jpg');

    $upload->delete();

    Cache::forget('waiting_uploads');

    $msg = 'upload has been deleted';
    Mail::to('xyz@xxx.tld')->send(new TextMail($msg));

    return redirect('upload');
}

我会把它放在调用存储库的服务中。这样你的控制器就不会与数据层对象交互,一切都被干净地分开了。