跳到主要内容
PHP

laravel获取经过验证的数据`request()->input('key')和request()->validated['key']` 的区别

管

管理员

PHP

2024年04月15日 2,100 次阅读
本页目录
有时候我们会认为经过验证器验证后的某个字段比如 ‘sku’经过验证器验证后,获取他的值使用input('sku')和validated()['sku']没有区别。
获取这样考虑`因为他已经经过验证了呀,没有通过的直接在验证阶段就报错了,所以input获取的值和validated()获取的值一样`。

其实这样忽略了当 `key`的值为数组的情况。正常获取验证后的值可以确保每个`数组key`都是经过验证的,不会有多余的数组key。可是使用input方法就会获取到原始输入。从而可能导致安全风险。

举个例子:

验证规则:
'sku' => ['required', 'array'],
'sku.*.sku' => ['string', 'max:255'],
'sku.*.stock' => ['integer', 'min:0'],
打印:
 
halt($request->input('sku'));
halt($validated['sku']);*/


当sku数组中多添加一个key的时候 sku[‘testkey'], 那么input方法会获取到testkey的值,如果你直接使用获取到的data保存到数据库就会导致异常或者安全问题。

Related

相关文章

同分类文章 →
2026年07月11日 PHP

laravel什么样的方法适合放在模型中?什么适合用专门的服务类? cachedFavIds适合放在模型中吗?

一、适合放在模型中的方法Laravel 采用 ActiveRecord 风格,模型本身就是"数据 + 围绕该数据的操作"的载体。以下几类方法适合放模型: 关联关系:belongsTo、morphTo、hasMany 等。如 UserFav::userfavable()、UserFav::us

2026年04月13日 PHP

Vue3 静态文件放在同域名 Laravel 项目下

核心思路是:Vue3 构建后的静态文件放到 Laravel 的 public/ 目录下,通过 Laravel 路由的 catch-all 机制让 SPA 的前端路由正常工作。方案说明以 xx.com/admin 为例,整体架构如下:请求流程:xx.com/admin/* → Laravel

2025年08月18日 PHP

Laravel Eloquent 中可以通过静态方式调用的方法

在 Laravel Eloquent 中,可以通过静态方式调用的方法包括:1. 查询作用域 (Scopes)// 可以静态调用UserComment::active()->get();UserComment::where('status', 1)->first();2. Eloquent 内置的查询方法UserComment::fi

WeChat

扫码加我微信

微信二维码