Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何创建具有权限的表?拉维尔_Php_Laravel_Laravel 8 - Fatal编程技术网

Php 如何创建具有权限的表?拉维尔

Php 如何创建具有权限的表?拉维尔,php,laravel,laravel-8,Php,Laravel,Laravel 8,所以我试着用数据库集成来制作一个基本的表,它工作得完美无缺。现在我需要创建一个表,为您添加编辑插入表单的数据的权限。但是我需要它只给制作表单的人编辑表单的权限。我在下面添加了当前进度,但没有添加权限。目前我用laravel完成了Jetstream页面,它有登录和注册功能,所以我希望用户名是经过授权的人来编辑数据。有什么简单的方法吗 我做的控制器: `$rada= new Raja; $rada->id=$req->id; $rada->raja_nimi

所以我试着用数据库集成来制作一个基本的表,它工作得完美无缺。现在我需要创建一个表,为您添加编辑插入表单的数据的权限。但是我需要它只给制作表单的人编辑表单的权限。我在下面添加了当前进度,但没有添加权限。目前我用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');`
查看文件:


@csrf






丽莎
您需要在控制器中存储作者的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 = Raja::find($req->id);
if(Auth::id() == $post->author_id) {
    //Update functionality here
} else {
    //Redirect to 401 or send response message
}
当用户试图保存模型时,执行检查的更合适的方法是使用策略,您可以在这里找到一个示例

谢谢你的回答,还有一个问题。以下代码是否也进入控制器本身?还是需要另一个文件@Luke.T`$post=Raja::find($req->id);如果(Auth::id()=$post->author\u id){//Update functionality here}或者{//重定向到401或者发送响应消息}`@DatHerd是的,你可以将其放入控制器的更新方法中,嘿,那么代码似乎对我不起作用。刚刚开始测试它,它仍然允许每个人编辑。这是RajaController>中更新部分的控制器,然后我转到RadaController中的添加部分,这是代码@卢克。T@DatHerd这种方法没有理由不起作用。检查您的Auth::id()和$post->author\u id是否都具有正确的值。它们都具有正确的值。当添加新的“rada”时,它也会在旁边的数据库中显示author\u id。但是当其他人试图用不同的作者id编辑“rada”时,他们仍然可以@Luke.T