我正在处理一个表格,用户可以更新他们的出生日期.的形式给出用户3的单独字段day,month和year.当然,在服务器端,我想将这3个独立的字段视为一个值即yyyy-mm-dd.
因此,在验证和更新我的数据库之前,我想date_of_birth通过连接来改变表单请求以创建字段year,month并day使用-字符来创建我需要的日期格式(并且可能取消设置原始的3个字段).
使用我的控制器手动实现此功能不是问题.我可以简单地抓取输入,将字段连接在一起,-然后取消设置.然后,我可以在传递给处理命令之前手动验证.
但是,我更愿意使用a FormRequest来处理验证并将其注入到我的控制器方法中.因此,我需要一种在执行验证之前实际修改表单请求的方法.
我确实找到了类似的以下问题:Laravel 5 Request - 改变数据
它建议覆盖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;
}
Run Code Online (Sandbox Code Playgroud)
这对于验证来说都很好,但是覆盖该all方法实际上并不会修改表单请求对象上的数据.因此,在执行命令时,表单请求包含原始未修改的数据.除非我使用现在重写的all方法来拉出数据.
我正在寻找一种更具体的方法来修改我的表单请求中的数据,不需要调用特定的方法.
干杯