【问题标题】:Validate two inputs as one将两个输入验证为一个
【发布时间】:2016-12-17 07:58:06
【问题描述】:

我有两个单独的输入:datetime。我想用after 规则验证这两个输入。我该怎么做?以下是目前的规则:

$now = (new DateTime())->format('Y-m-d H:i');

$rules = [
    'date' => [
        'required',
        'date',
        "after:$now",
    ],
    'time' => [
        'required',
        'regex:/^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/',
    ],
];

目前,验证忽略时间,当时间设置为无效时,日期将过去。

【问题讨论】:

    标签: validation laravel laravel-4


    【解决方案1】:

    这样的事情怎么样:

    class MyRequest extends Request 
    {
        public function rules() 
        {
            $this->normalize();
    
            return ['date_time' => 'required|date|after:now'];
        }
    
        public function normalize()
        {
            $this->merge([
                'date_time' => $this->input('date') . ' ' . $this->input('time')
            ]);
        }
    }
    

    这里主要是调用 normalize 来构建并向请求添加一个新的date_time 键值,然后使用您喜欢的任何规则进行验证。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-12
      • 1970-01-01
      相关资源
      最近更新 更多