通过href发送数据获取Route Methode

时间:2018-06-23 11:57:55

标签: php laravel post get href

我建立了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

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

顺便说一句,如果该ID是已登录用户的ID,则无需通过查询参数传递它,只需使用laravel的Auth::id()函数即可获取它。

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