Laravel 5 表单请求数据预处理
2022-08-30 12:38:09
我正在处理一个表单,用户可以在其中更新其出生日期。表单为用户提供了 3 个单独的字段,用于 、 和 。当然,在服务器端,我想将这3个单独的字段视为一个值,即.day
month
year
yyyy-mm-dd
因此,在验证和更新我的数据库之前,我想通过连接来更改表单请求以创建字段,并使用字符创建我需要的日期格式(并且可能取消设置原始的3个字段)。date_of_birth
year
month
day
-
使用我的控制器手动实现此目的不是问题。我可以简单地获取输入,将用字符分隔的字段连接在一起并取消设置它们。然后,我可以在传递到命令以处理处理之前手动验证。-
但是,我更喜欢使用 a 来处理验证,并将其注入到我的控制器方法中。因此,我需要一种在执行验证之前实际修改表单请求的方法。FormRequest
我确实发现了以下类似的问题:Laravel 5请求 - 更改数据
它建议重写表单请求上的方法,以包含用于在验证之前操作数据的逻辑。all
<?php namespace App\Http\Requests;
class UpdateSettingsRequest extends Request {
public function authorize()
{
return true;
}
public function rules()
{
return [];
}
public function all()
{
$data = parent::all();
$data['date_of_birth'] = 'test';
return $data;
}
这对于验证来说很好,但重写该方法实际上并不会修改表单请求对象上的数据。因此,在执行命令时,表单请求包含原始的未修改数据。除非我使用现在被覆盖的方法将数据拉出。all
all
我正在寻找一种更具体的方式来修改我的表单请求中的数据,不需要调用特定方法。
干杯