Похожий пост был сделан здесь , но все равно он не работает в моем случае.
$v = \Validator::make($keys, [
'overall' => 'required',
'taste' => 'sometimes|required_with_all:freshness, quantity, value',
'freshness' => 'sometimes|required_with_all:taste, quantity, value',
'quantity' => 'sometimes|required_with_all:taste, freshness, value',
'value' => 'sometimes|required_with_all: taste, quantity, freshness'
]);
dd($v->fails()); //-> false should be true
Я пытаюсь обобщить, что я делаю:
- У меня есть система рейтинга для различных типов предложений
- всегда требуется «общий», не имеет значения, какой тип предложения это.
- Предложение, как еда, имеет рейтингтипы «общее, вкус, свежесть, количество и ценность»
- Однако, поскольку существует много типов предложений «вкус, свежесть, количество и ценность», это не единственные типы рейтинга.В будущем их будет больше (например, рейтинг электронной книги (вы не оцените вкус и т. Д.))
- «вкус, свежесть, количество и ценность» не являются обязательными, но если существует только один, вседолжен быть обязательным.
Я пытался сделать это с помощью required_with, но он не работает.
Мой пример массива:
array:4 [
"overall" => 0
"freshness" => 1
"quantity" => 2
"value" => 3
]
С отсутствующим «вкусом».
Так что же я делаю не так?
Если я полностью понимаю документы:
required_with_all: foo, bar,... Проверяемое поле должно присутствовать только в том случае, если присутствуют все остальные указанные поля.
Это означает, что:
Например, "вкус" => 'иногда | required_with_all: свежесть, количество, значение 'означает, что при наличии свежести, количества, значения и отсутствии параметра «вкус» возникает ошибка проверки.
Но это не так ...