Когда пользователь заполняет сообщение (текстовое поле), он не может заполнять значения даты, времени, места.
Эти три поля будут учитываться только тогда, когда Message пустое и все эти три поля заполнены.
Как это сделать, используя валидацию формы Laravel? Можно ли определить эту логику в методе правила запроса?
Я новичок в Laravel.
Заранее спасибоLaravel Проверка формы с помощью логических операторов
5
A
ответ
4
Вы можете достичь этого (на стороне сервера), используя условные правила проверки:
- required_if: anotherfield, значение, ...
- required_unless: anotherfield, значение , ...
- required_with: foo, bar, ...
- required_with_all: foo, bar, ...
- required_without: Foo, бар, ...
- required_without_all: Foo, бар, ...
Я бы сказал, для Вашего случая:
- даты не требуется, если сообщение заполняется
- время не требуется, если сообщение не заполнено
- места требуется, если сообщение не будет заполнено в
- сообщения требуются без всего дата, время, место проведения
правили Chain, если вам нужно, разделяя их с трубой
следует за пример фрагмента. Используйте этот метод внутри вашего ExampleFormRequest простирающегося Request
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$rules = [];
switch ($this->method()) {
case 'PATCH':
case 'PUT':
case 'POST':
$rules = [
'date' => 'required_without:message',
'time' => 'required_without:message',
'venue' => 'required_without:message',
'message' => 'required_without_all:date,time,venue',
];
break;
default:
// Perform no alteration to rules
break;
}
return $rules;
}
заказ documentation here
2
Как вы сказали, что правила проверки, как поле «Message» или все из этих трех («даты», «время»,» место проведения »). Поэтому правила должны выглядеть ниже.
$rules = [
'date' => 'required_with_all:time,venue|required_without:message',
'time' => 'required_with_all:date,venue|required_without:message',
'venue' => 'required_with_all:date,time |required_without:message',
'message' => 'required_without_all:date,time,venue',
];
+0
Да, это то, что я искал. – Sachith
Таким образом, вы хотите, чтобы любое поле сообщения заполнялось пользователем или только эти три поля. Но не все четверо из них вместе? Любое требование быть заполненным? –
Да, не все четыре вместе. – Sachith