首页 文章

laravel 5.1中的日期验证

提问于
浏览
1

我做了自定义请求调用EventRequest来验证输入我有两个日期属性,第一个是'start',第二个叫做'end' . 'End'必须更大或 equal 才能开始 . 注意:laravel 5.1没有after_or_equal函数

这是我的代码

public function rules()
{
    return [
      'name'          =>'required|min:3|max:255',
      'place'         => 'required|min:3|max:255',
      'start_date'    => 'required|date|after:yesterday',
      'end_date'      => 'required|date|after:yesterday',
      'start_time'    => 'required|date_format:H:i',
      'end_time'      => 'required|date_format:H:i'
    ];
}

如果我设置一个规则,例如start_date必须在之前:end_date,但是如果它们在同一天发生了错误,我就会陷入困境 . 有什么解决方案吗?提前致谢!

2 回答

  • 0

    手动使用 Validator 解决方案

    public function validateForm(Request $request){
        $end_date = date('Y-m-d', strtotime($request->end_date. ' -1 day' ));
        $messages = [
            "end_date.after" => "End date must be equal or greater than start date.",
        ];
        $rules = [
                'start_date'    => 'required|date|after:yesterday',
                'end_date'      => 'required|date|after:'.$end_date,
        ];
        return Validator::make($requestAll, $rules);
    }
    
  • -1

    开始日期是:昨天...所以end_date可以在start_date之后......

    public function rules()
    {
        return [
          'name'          =>'required|min:3|max:255',
          'place'         => 'required|min:3|max:255',
          'start_date'    => 'required|date|after:yesterday',
          'end_date'      => 'required|date|after:start_date',
          'start_time'    => 'required|date_format:H:i',
          'end_time'      => 'required|date_format:H:i'
        ];
    }
    

相关问题