我目前有一条验证规则,像这样:
public function rules()
{
return [
'startDate' => 'required|sometimes|before_or_equal:endDate',
'endDate' => 'sometimes|required|after_or_equal:startDate',
];
}
有时选项的工作原理是,如果字段存在,则运行验证规则。但是,如果结束日期未发送或为空,则我的“before or equal”规则会启动并失败。在我的应用程序中的某些情况下,结束日期将为null。在这种情况下,是否有一种方法可以“取消”startDate验证规则,或者我需要创建一个自定义验证器来实现这个目的?
类似于before_or_equal_when_present
之类的东西吗?
before_or_equal
,因为如果存在结束日期,则注释必须在开始日期之后。如果这是真的,那么开始日期也必须在结束日期之前。因此,如果 endDate 存在且在 startDate 之前,那么 after_or_equal 规则已经生效了。 - milo526