У меня в настоящее время проблема с валидаторами Symfony. Необязательные ограничения.Symfony Необязательные ограничения не работают, как ожидалось
Мне нужно, чтобы правила parentId обрабатывались только в том случае, если это поле было передано (ключ находится в ParameterBag), к сожалению, Symfony всегда пытается проверить, даже если он не передан.
public function validateParameters(ParameterBag $request, Collection $validatorRules)
{
$validatorErrors = $this->validator->validateValue($request->all(), $validatorRules);
if (count($validatorErrors) !== 0) {
throw new \Exception($validatorErrors[0]->getPropertyPath() . ' - ' . $validatorErrors[0]->getMessage());
}
echo 'yay!';
exit;
}
public function create(Application $app, Request $request)
{
// check that the validation rules pass for this service
$this->validateParameters($request->request, new Collection([
'parentId' => [new Assert\Optional(), new Assert\Regex(['pattern' => '/^[0-9]\d*$/'])],
'title' => [new Assert\NotBlank(), new Assert\Length(['min' => 3])],
'description' => [new Assert\NotBlank()],
]));
// ...............
}
Любая помощь или указатели больш были бы оценены как документы Symfony в основном говорить о проверке на предмет непосредственно, но я хочу, чтобы проверить против ParameterBag поступать.