Как я могу условно проверить пользовательское правило в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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