如何验证必须在 Laravel 51 中相对于模型的另外两个日期内的日期数组

How to validate array of date that have to be inside two other date relative to a model in Laravel 51

我正在使用 boostrap-datepicker,并激活了 "multiple-date" 选项。 我的 dates 看起来像这样:[date1, date2, ...].

我还使用隐藏输入来检索 "id"。这个 "id" 帮助我在我的模型中检索 "startdate" 和 "enddate"。

所以我正在寻找一个验证规则,它可以告诉我我的日期是否有效以及它们是否在对应于我模型的 "id" 的其他两个日期内。

现在我的 iddates 规则是这样的:

$rules = [
    'id' => 'required|numeric|exists:event,id,isactive,1',
    'dates' => 'array'
]

你可以像这样以非常简单的方式做到这一点

这里是关于为 before and after

编写规则的文档
protected $rules = array(
    'afterdate' => 'after:'.$yourDateForm,
    'beforedate' => 'before:'.$yourDateTo 
);

注:

您还应像这样扩展日期验证

'start_date' => 'required|date|after:tomorrow'
'finish_date' => 'required|date|after:start_date'

更新:

由于 OP 想要从数据库中获取日期,

你应该这样做

$yourStartDate = Call to get Start Date from Table;
$yourEndDate = Call to get End Date from Table;

规则应为

$validator = Validator::make(
    array('date' => $yourStartDate),
    array('date' => 'after:'.$yourEndDate)
);