首页 > 解决方案 > 通过 href get Route Methode 发送数据

问题描述

我构建了 get Methode 路由以通过控制器将数据存储在 mysql 数据库中。在这里你可以看到我的一部分观点

@foreach($groupsrequest as $grouprequest)
        <a class="btn btn-primary btn-block" href="{{ route('mgmtgroups_approvel', ['idgroup' => $grouprequest->idgroup, 'iduser' => $grouprequest->iduser]) }}">               
            Gruppe <strong>{{$grouprequest->group_name}}</strong> Anfrage von User <strong>{{$grouprequest->username}}</strong>
        </a>
@endforeach

这是我的网络路由文件,它将数据传递给控制器​​,数据将存储到 mysql 数据库中。

Route::get('/home/groupmgmt/approvel', 'GroupController@setGroupApprovel')->name('mgmtgroups_approvel');

现在我的问题,在我点击 a href 按钮后,我得到以下网址

http://localhost:8000/home/groupmgmt/approvel?idgroup=18445&iduser=123

我可以更改 url 参数并按回车键,然后将存储数据。但这不可能是正确的,因为我能够在数据库中存储假数据。例如,我可以创建不存在的用户 ID。如何以正确的方式做到这一点,这是不可能的,只有之前视图中显示的数据才能存储在数据库中?

标签: phplaravelpostgethref

解决方案


您可以使用laravel 的存在验证类型来验证用户 ID 的存在。

顺便说一句,如果 ID 是登录用户的 ID,那么您不需要通过查询参数传递它,您可以使用Auth::id()laravel 的函数获取它。

另外我建议您使用 POST 方法而不是 GET 并将 csrf 令牌添加到请求中以提高安全性。此外,您应该验证请求以确保没有人可以将无效数据插入数据库。例如,如果这是一个注册批准脚本,您应该确保请求给定 ID 以在组上注册,否则您应该向用户显示错误。


推荐阅读