只从laravel验证器获取验证数据

wj8zmpe1  于 2023-03-31  发布在  其他
关注(0)|答案(2)|浏览(150)

当使用验证器验证数据时,可以使用getData()方法从验证器获取所有处理过的数据。但是,这会返回所有已传递到验证器的数据。我只需要实际符合验证模式的数据。
例如:

$data = [
    'email'          => email@example.com,
    'unnecessaryKey' => 'whatever'
];

$validator = Validator::make($data, [
        'email'       => 'required|string',
]);

$validator->getData()

将返回“unnecessaryKey”以及电子邮件。问题是:在这种情况下,即使我也传递了unnecessaryKey,也可以只返回电子邮件吗?

8aqjt8rx

8aqjt8rx1#

如果你从$request中获取数据,你可以尝试

$validator = Validator::make($request->only('email') , [
        'email'       => 'required|string',
]);

如果你正在验证一个$data数组,那么你可以尝试

$validator = Validator::make(collect($data)->only('email')->toArray() , [
        'email'       => 'required|string',
]);

希望这个有用。

pkwftd7m

pkwftd7m2#

您应该使用表单请求来完成此操作。
1.创建表单请求类
php artisan make:request StoreBlogPost
1.将规则添加到在app/Http/Requests目录中创建的类。

public function rules()
    {
      return [
        'title' => 'required|unique:posts|max:255',
        'body' => 'required',
      ];
    }

1.在控制器中检索请求,它已经过验证。

public function store(StoreBlogPost $request)
{
   // The incoming request is valid...
   // Retrieve the validated input data...
   $validated = $request->validated();
}

相关问题