【问题标题】:Laravel date validation based on two separate inputs; a date input and a time input基于两个独立输入的 Laravel 日期验证;日期输入和时间输入
【发布时间】:2018-09-14 08:42:42
【问题描述】:

我想根据日期的日期选择器输入和单独的时间选择器输入来验证 Laravel 中的表单日期:

<input class="form-control datepicker" name="datepicker_date">
<input class="form-control timepicker" name="datepicker_time">

处理一切正常,这是 Laravel 验证规则:

'datepicker_date' => 'required|date|after:' . date('Y-m-d H:i', time()),
'datepicker_time' => 'required|date_format:H:i',

这是有效的,因为它正在检查给定的日期是否在当前时间之后(并且由于没有提供时间,因此检查的时间将为 00:00:00')。

我需要将 timepicker 字段作为验证规则的一部分考虑在内,因此如果他们选择了 15:00,则验证日期为 2018/09/09 15:00:00。目前是 2018/09/09 00:00:00。

如何将已选取的时间注入“datepicker_date”输入或将 datepicker_time 字段视为 datepicker_date 验证规则的一部分?


感谢您的帮助 Mücahit Cücen。这就是我现在拥有的:

 $this->request->add([
        'datetime' => date('Y-m-d H:i:s', strtotime($this->request->get('datepicker_date') . ' ' . $this->request->get('datepicker_time')))
    ]);

 'datepicker_date' => 'required|date',
 'datepicker_time' => 'required|date_format:H:i',
 'datetime' => 'required|date|after:' . date('Y-m-d H:i', time()),

我收到错误“日期时间字段是必需的”。尽管。它被添加到集合中,因为我有 dd()'d 并且可以看到它,但验证器没有捡起它?我尝试使用 request->merge 函数并得到一个函数不存在错误?


更新:好的,这很 hacky,但我设法通过添加

来解决这个问题
   $this->request->add([
        'datetime' => date('Y-m-d H:i:s', strtotime($this->request->get('datepicker_date') . ' ' . $this->request->get('datepicker_time')))
    ]);

加入到 authorize() 函数中,大概是因为它在 rules() 函数之前被调用,所以添加了新的请求参数。欢迎任何更好的建议:)

【问题讨论】:

    标签: php html laravel laravel-5.6


    【解决方案1】:

    你可以试试这个。

    验证码之前:

    $request->merge([
        'datepicker' => $request->get('datepicker_date').' '.$request->get('datepicker_time'),
    ]);
    

    你可以像这样验证它,

    'datepicker' => 'required|date|after:' . date('Y-m-d H:i', time())
    

    我没试过,但这可以解决你的问题。

    编辑:请求->所有输出;

    "datepicker_date" => "2018-09-14"
    "datepicker_time" => "12:26"
    "datepicker" => "2018-09-14 12:26"
    

    【讨论】:

    • 感谢您的帮助 - 我认为它为我指明了正确的方向。尽管无法识别合并功能,但遇到问题。将使用新的详细信息更新我的问题
    猜你喜欢
    • 1970-01-01
    • 2018-06-11
    • 1970-01-01
    • 2014-01-04
    • 2015-10-17
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 2012-10-28
    相关资源
    最近更新 更多