1
我正在使用symfony2驗證程序來驗證表單和API POST請求。在驗證程序中使用約束
我已經作出了驗證這樣的:
public function validate($content, Constraint $constraint)
{
if (in_array($constraint->type, self::DNS_TYPE, true) === false) {
$this->context->buildViolation('This DNS type is not valid.')
->atPath($constraint->type)
->addViolation();
}
switch ($constraint->type) {
case 'A':
$contentConstraint = new Assert\Ip(['version' => '4']);
break;
case 'AAAA':
$contentConstraint = new Assert\Ip(['version' => '6']);
break;
case 'CNAME':
case 'NS':
case 'MX':
$contentConstraint = new Assert\Regex(['pattern' => '/^[[:alnum:]-\._]+$/u']);
break;
default:
$contentConstraint = false;
break;
}
// This part don't work
if ($this->validate('1.1.1.1', $contentConstraint)) {
$this->context->buildViolation('his value is not correct.')
->atPath($content)
->addViolation();
}
}
第一個回調,並與我的表單開關的工作,但在使用第二個回調,symfony會返回一個錯誤
選項「類型「在約束中不存在Symfony \ Component \ Validator \ Constraints \ Ip
我不明白我的約束有什麼問題。 爲什麼這個錯誤說我的IP約束沒有type
選項?
我該如何解決這個問題? 我也許不能在驗證器中使用ip
約束?
感謝
我不需要這個屬性,我甚至不知道這個屬性來自哪裏。當我在另一個班級使用這個功能時,這個工作很好。我不明白爲什麼只有在這個班上我有這個錯誤 –