проверил этот вопрос в некотором роде похожий, но бесполезный в моем случае.
У меня есть несколько временных входов, где я должен убедиться, что время начала не должно превышать время окончания.
Мой дамп запроса ввода
array:2 [▼
"_token" => "nYb7gSp5TGTcrU9nNW9PMjJTduohLZFDLCzLGPbq"
"timings" => array:8 [▼
"day_1" => array:1 [▼
0 => "1"
]
"day_2" => array:1 [▼
0 => "1"
]
"day_3" => array:1 [▼
0 => "1"
]
"day_4" => array:1 [▼
0 => "1"
]
"day_5" => array:1 [▼
0 => "1"
]
"day_6" => array:1 [▼
0 => "1"
]
"day_7" => array:1 [▼
0 => "1"
]
"session" => array:1 [▼
0 => array:2 [▼
"start" => array:2 [▼
0 => "14:00 PM"
1 => null
]
"end" => array:2 [▼
0 => "15:00 PM"
1 => null
]
]
]
]
]
Я до сих пор делал для этого
$rules = [
'timings.session.*.start.*' => 'nullable|date_format:H:i|before:timings.session.*.end.*',
'timings.session.*.end.*' => 'nullable|date_format:H:i|after:timings.session.*.start.*',
];
$messages = [
'timings.session.*.start.*.before' => 'Start Time should be before End Time',
'timings.session.*.end.*.after' => 'End Time should be after Start Time',
];
$validator = Validator::make($request->all(), $rules, $messages);
dd($validator->errors());
Все еще получаю false сообщение об ошибке:
Illuminate\Support\MessageBag {#780 ▼
#messages: array:2 [▼
"timings.session.0.start.0" => array:2 [▼
0 => "The timings.session.0.start.0 does not match the format H:i."
1 => "Start Time should be before End Time"
]
"timings.session.0.end.0" => array:2 [▼
0 => "The timings.session.0.end.0 does not match the format H:i."
1 => "End Time should be after Start Time"
]
]
#format: ":message"
}
Вопросы:
a.) Как установить правильные правила проверки для ввода времени, обеспечивающие, чтобы время начала не превышало время окончания?
b.) Как поставить другое правило проверки на совпадение, по крайней мере, один флажок отмечен для выбора дня?
Спасибо, надеюсь, это поможет и другим людям.