Как я могу условно проверить пользовательское правило в Laravel?Php

Кемеровские программисты php общаются здесь
Anonymous
Как я могу условно проверить пользовательское правило в Laravel?

Сообщение Anonymous »

В моем контроллере у меня есть метод 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)
],
]);
— это логическое значение. Если close имеет значение false, поля time_start и time_end являются обязательными. Кажется, это работает так, как ожидалось.

Однако, если я отправлю запрос с закрытием как true, я попаду в свое пользовательское правило TimeDurationRule:

Код: Выделить всё

'time_end' => [
'required_if:closed,0',
new TimeDurationRule($request->time_start)
],
Как сделать новое TimeDurationRule($request->time_start) условным? Например, если значение close истинно, я вручную устанавливаю для time_end значение null, поэтому time_start/

Код: Выделить всё

time_end
не требуется значение (не обязательно).

Если я прокомментирую свое пользовательское правило, все будет работать так, как ожидалось.

Спасибо за любые предложения!>

Подробнее здесь: https://stackoverflow.com/questions/607 ... in-laravel

Вернуться в «Php»