In my controller I have a store method that is validating the request data:
$request->validate([
'title' => 'required',
'description' => 'required',
'date' => [
'required',
new DateFormatRule
],
'closed' => 'nullable',
'time_start' => 'required_if:closed,0',
'time_end' => [
'required_if:closed,0',
new TimeDurationRule($request->time_start)
],
]);
closed is a boolean. If closed is false, the time_start and time_end fields are required. This seems to be working as expected.
However, if I submit a request with closed as true, I am getting caught in my custom TimeDurationRule:
'time_end' => [
'required_if:closed,0',
new TimeDurationRule($request->time_start)
],
How can I make new TimeDurationRule($request->time_start) conditional? For example, if closed is true, I am manually setting time_end to null so time_start/time_end do not need a value (not required).
If I comment my custom rule out, everything works as expected.
Thank you for any suggestions!