html - 只显示用户自己 Laravel 的通知
问题描述
我做了一个网站,您可以在其中进行报告,您必须使用您的帐户提交表单,然后管理员可以处理该报告,因此用户可以登录并查看报告及其状态,但我想要用户只能看到自己的报告而不能看到其他人?这是我的html
@extends('layouts.app')
@section('content')
<div class="container">
<div class="mTop">
<div class="row justify-content-center">
<div class="col-md-8">
@if(session('message'))
<div class="alert alert-success" role="alert">
{{session('message')}}
</div>
@endif
<div class="card">
<div class="card-header">Retourmeldingen</div>
<div class="card-body">
<table class="table table-hover">
<thead>
<tr>
<th scope="col">Firmanaam</th>
<th scope="col"></th>
<th scope="col"></th>
<th scope="col">Status</th>
<th scope="col">Verwerkingstijd</th>
<th scope="col"></th>
</tr>
</thead>
@foreach($retours as $retour)
<tbody>
<tr>
<th scope="row">{{ $retour->firmaname }}</th>
<td><a href="{{ route('return.show', $retour->id) }}">
<button type="button" class="btn btn-secondary btn-sm m-0">Bekijk
</button>
</a></td>
<td>@if( $retour->status === 0)
<a href="{{ route('return.edit', $retour->id) }}">
<button type="button" class="btn btn-secondary btn-sm m-0">Wijzig
</button>
</a>
@else
<a href="{{ route('return.edit', $retour->id) }}">
<button type="button" class="btn btn-secondary btn-sm m-0" disabled>
Wijzig
</button>
</a>
@endif
</td>
<td>@if( $retour->status === 0)
Open
@else
<i style="color: #05af00; font-size: 25px"
class="fa fa-check-circle"></i>
@endif</td>
<td>
@if($retour->status === 0)
Nog niet verwerkt
@elseif($retour->diffInDays === 0)
Zelfde dag verwerkt
@elseif( $retour->diffInDays === 1)
{{ $retour->diffInDays }} dag
@elseif( $retour->diffInDays >= 1)
{{ $retour->diffInDays }} dagen
@endif
</td>
<td>
<form method="post"
action="{{ route('return.destroy', $retour->id) }}">
@csrf
@method('DELETE')
<button type="submit" class="btn btn-danger btn-sm m-0"><i
class="fa fa-trash" aria-hidden="true"></i>
</button>
</form>
</td>
</tr>
</tbody>
@endforeach
</table>
</div>
</div>
<div class="mt-3">{{ $retours->links() }}</div>
</div>
</div>
</div>
</div>
@endsection
所以我想要的是用户只能看到他自己基于公司名称的报告,我现在拥有的是你可以看到所有的报告
解决方案
在我看来,您应该在控制器级别应用过滤器,返回仅查看顾问用户拥有的报告集合。
user_id
如果任何报告属于唯一用户,则应通过报告表中的字段来完成,如果报告可以有多个所有者,则应通过数据透视表来完成。
因此,如果报告仅属于唯一用户,则应在 sql 查询中通过 WHERE 语句进行过滤,例如:
$reports = Reports::where('user_id', $auth->user()->id)->where('other conditions')->get();
然后,在您看来,您将只有属于当前用户的报告,这也解决了安全问题。
推荐阅读
- php - Laravel 找不到路径 404
- tensorflow-serving - tensorFlow服务批处理配置无效
- python - 如何为 .csv 文件创建用户名/密码系统?
- amazon-web-services - 以机器可读格式获取 cp 进度
- c# - 在 C# 中定义一个枚举,它具有现有枚举的所有值,以及一些附加值
- oracle - SQL ORACLE:表重组
- javascript - 为访问者清除 X-CSRF-TOKEN 以修复 XMLHttpRequest 被 CORS 策略阻止
- php - Sweet Alert 2 - “confirmButtonText”按钮中的链接
- python - 如何在没有for循环的情况下在python中对数组进行下采样
- css - 创建绑定到可调整大小的矩形包含框的正方形