防止以表格形式提交数据

时间:2019-06-20 09:27:06

标签: laravel forms request leaflet

我的Laravel Blade视图中有一个HTML表单,里面有一个传单地图,用于显示一些数据。问题是,当我要提交表单时,此地图将生成数据并将其插入表单,字段名称为:“ leaflet-base-layers_xx”,其中xx是每次都会更改的随机数,所以我不能只需在我的控制器中取消设置这些数据即可。

$data = $request->all();
unset($data['leaflet-base-layers_95']);

有什么办法可以防止地图提交数据。还是知道它具有灵活的名称,我可以通过任何方式取消我想要的字段?

1 个答案:

答案 0 :(得分:0)

您应该验证请求。这样不仅可以验证您想要的字段,而且还可以提供一种简便的方法来过滤出您不希望或不希望接收的任何字段。

例如,如果您的表单应仅包含标题和正文字段

$data = $request->validate([
    'title' => 'required|unique:posts|max:255',
    'body' => 'required',
]);

现在$data现在将只包含“标题”和“正文”,而不管提交了什么其他字段。

如果您进一步执行此操作并使用“表单请求”,则可以使用$request->validated()方法,该方法将再次仅包含经过验证的字段,并且不包含其他不需要的垃圾。

$data = $request->validated();

除了解决您的问题外,根据良好实践,您始终应该只使用经过验证的数据。在应用程序周围传递未经验证的数据是灾难的根源。

参考:https://laravel.com/docs/5.8/validation