在此处使用存储库、事件或服务提供商?
Use a repository, event or service provider here?
我在UploadController
中有这个功能,用来取消上传,我正在努力改进它。
这个 "File::delete..block"
在我的应用程序中存在两次。例如,将此块从控制器中排除是否有意义?如果是,我应该使用什么,Repository
、Service Provider
或 Event
?
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');
}
我会把它放在调用存储库的服务中。这样你的控制器就不会与数据层对象交互,一切都被干净地分开了。
我在UploadController
中有这个功能,用来取消上传,我正在努力改进它。
这个 "File::delete..block"
在我的应用程序中存在两次。例如,将此块从控制器中排除是否有意义?如果是,我应该使用什么,Repository
、Service Provider
或 Event
?
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');
}
我会把它放在调用存储库的服务中。这样你的控制器就不会与数据层对象交互,一切都被干净地分开了。