日期格式验证中的 Laravel 转义'T'



在我创建的表单中,我使用datetime-locale输入。以今天的日期为例,输入字段返回的日期格式为2020-07-21T17:20

我正在尝试使用Laravel的date_format验证来验证输入字段的日期。如何转义输入字段返回值的日期时间中的"T"?

您可以使用以下验证:

$request->validate([
'field' => 'required|date_format:"Y-m-dTH:i"'
]);

如果使用FormRequest并使用Carbon解析日期,则可以覆盖validationData方法。或者只是简单地做一个str_replace;(

// form request
class MyFormRequest extends IlluminateFoundationHttpFormRequest
{
public function validationData()
{
$data = parent::validationData();
$data['field'] = Carbon::parse($data['field'])->format('Y-m-d H:i');
return $data;
}
}
// controller
class MyController
{
public function store(MyFormRequest $request)
{
// be aware that this doesn't return the formatted date value
$request->post('field');
// you could use this
$request->validationData()['field'];
}
}

最新更新