أود أن أعرف ما إذا كان بإمكانك التحقق من حقل اعتمادًا على قيمته من نموذج في Symfony؟ على سبيل المثال ، لدي عنوان URL واسم داخل نموذج مرتبط به. إذا كانت قيمة الاسم هي 'instagram' ، فلنقل ، أريد أن يتم التحقق من صحة عنوان url بواسطة فئة Instagram Validator وما إلى ذلك. لقد كتبت مفتاحًا ولكني أتلقى الخطأ:
استدعاء دالة العضو buildViolation () على قيمة خالية
ما حاولت:
public function validateURL($url, $name)
{
$message = '';
switch ($name) {
case "Instagram":
$instagramValidator = new InstagramValidator();
$instagramValidator->validate($url, new Url());
break;
default:
return;
}
return $message;
}
InstagramValidator:
class InstagramValidator extends ConstraintValidator
{
/**
* {@inheritdoc}
*/
public function validate($url, Constraint $constraint)
{
if (!preg_match('/(?:http:\/\/)?(?:www\.)?instagram\.com\/(?:(?:\w)*#!\/)?(?:pages\/)?(?:[\w\-]*\/)*([\w\-]*)/', $url)) {
$this->context->buildViolation($constraint->message)
->setParameter('{{ value }}', $this->formatValue($url))
->addViolation();
}
}
}
لذا هناك طريقة للتعامل مع هذا؟