如何制作具有权限的table? Laravel

How to make a table with permissions? Laravel

所以我尝试制作一个基本的 table 与数据库集成,它完美地工作。现在我需要创建一个 table 来为您添加编辑插入到表单中的数据的权限。但我需要它只给制作表格的人编辑它的权限。下面我在没有添加权限的情况下添加了我当前的进度。目前我使用 laravel 完成了 Jetstream 页面,它具有登录和注册功能,因此我希望用户名成为授权人员来编辑数据。有什么简单的方法吗?

我做的控制器:

    `$rada= new Raja;
    $rada->id=$req->id;
    $rada->raja_nimi=$req->raja_nimi;
    $rada->raja_asukoht=$req->raja_asukoht;
    $rada->save();
    return redirect('list');`

查看文件:

<form action="add" method="POST">
    @csrf
    <input type="text" name="id" placeholder="Raja ID"> <br> <br>
    <input type="text" name="raja_nimi" placeholder="Raja nimi"> <br> <br>
    <input type="text" name="raja_asukoht" placeholder="Raja asukoht"> <br> <br>
<button type="submit">Lisa</button>


</form>

您需要将作者的 ID 存储在您的控制器中,例如...

$rada= new Raja;
$rada->id=$req->id;
$rada->raja_nimi=$req->raja_nimi;
$rada->raja_asukoht=$req->raja_asukoht;
$rada->author_id = Auth::id();
$rada->save();

然后当您在控制器中更新 post 时,您将实施检查以确保用户拥有 post...

$post = Raja::find($req->id);
if(Auth::id() == $post->author_id) {
    //Update functionality here
} else {
    //Redirect to 401 or send response message
}

当用户尝试保存模型时执行检查的更 Laravel 合适的方法是使用策略,您可以在此处找到示例 https://laravel.com/docs/8.x/authorization#policy-responses