В моем контроллере у меня есть метод store
, который проверяет данные запроса:
$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
- логическое значение. Если closed
равно false, поля time_start
и time_end
обязательны для заполнения. Кажется, это работает как ожидалось.
Однако, если я отправлю запрос с closed
как истина, я попаду в свой пользовательский TimeDurationRule
:
'time_end' => [
'required_if:closed,0',
new TimeDurationRule($request->time_start)
],
Как можно Я делаю new TimeDurationRule($request->time_start)
условным? Например, если closed
истинно, я вручную устанавливаю time_end
на null
, поэтому time_start
/ time_end
не нужно значение (не требуется).
Если я комментирую свой пользовательский исключаю, все работает как положено.
Спасибо за любые предложения!