通过 href get Route 方法发送数据

Sending data via 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');

现在我的问题是,在我点击 href 按钮后,我得到以下内容 url

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

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

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

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

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