我有三个表:users,files和file_project。 每个文件都有一个user_id。
管理员可以删除每个文件,但只删除用户上传的文件。
view.blade.php
文件表
file_project表
在我提交表格后,我得到了这些:
[
"23",
"22",
"24"
]
所以,现在我可以从Controller中删除这些文件。 这是控制器:
public function deleteSelected (Request $request)
{
$files = $request->files;
File::destroy($files);
return redirect()->back();
}
如何使用策略并检查多个ID?
我现在可以使用$ files
中的ID识别文件表中的记录public function deleteSelected (Request $request)
{
$files = $request->files;
return $list = File::find($files);
}
响应是:
任何帮助?
谢谢!
答案 0 :(得分:0)
如果您只想允许有权限的用户删除该文件,您可以使用以下内容:
public function deleteSelected (Request $request)
{
$files = $request->files;
$loggedInUser = Auth::user();
if(!$loggedInUser->isAdmin() || File::whereIn('id', $files)->where('user_id', $loggedInUser->id)->count() < count($files)) {
abort(403);
}
File::destroy($files);
return redirect()->back();
}
然后在用户模型中添加isAdmin的逻辑