如何验证 laravel 中的日期

How to validate date in laravel

在验证方法中,我有以下内容:

$this->validate($request, ['test_date' => 'required|unique:test_db']);

test_db中的test_date存储为unix时间。 提交表格后,我在 mm/dd/Y

中得到 $request->get('test_date')

唯一验证不起作用,因为我在 mm/dd/Y 中获取日期,这与数据库(unix 时间)不同。

如何让它在这个验证中唯一?

我想如果你改变日期格式那么一切都会好起来的,所以试试这个:

$date = $request->get('test_date');

$newDate = date('d-m-Y', strtotime($date ));

在验证中使用此 $newDate

你可以试试这个:

//get date from request
$date = $request->get('test_date');

//add the converted date to request
$request->request->add(['new_date_field'=> DateTime::createFromFormat('m/d/Y', $date)->getTimestamp()]);

//validate the updated date field
$this->validate($request, ['new_date_field' => 'required|unique:test_db']);

向请求添加字段:

更新: 您可以使用 offsetSet 方法更新现有字段:

    //get date from request
    $date = $request->get('test_date');

    //update date in request
    $request->offsetSet('test_date', DateTime::createFromFormat('m/d/Y', $date)->getTimestamp());

    //validate the updated date field
    $this->validate($request, ['test_date' => 'required|unique:test_db']);

正在更新请求字段:

Laravel 提供称为访问器和修改器的功能。

当您在模型实例上检索或设置属性值时,访问器和修改器允许您格式化 Eloquent 属性值。

欲了解更多信息,请访问:https://laravel.com/docs/5.5/eloquent-mutators#accessors-and-mutators

希望对您有所帮助。