FormServiceProvider ve ValidatorServiceProvider'ı kullandığım bir Silex projem var. I form.factory oluşturucu ile bir form yapılan alanları ilave edildi ve veri seti olarak bir nesneyi kullanmak adres:Symfony nesne kısıtlamalarını doğrulamıyor
if ($app['request']->getMethod() == 'POST') {
$form->bind($app['request']);
if ($form->isValid()) {
(...)
}
}
:
$form = $app['form.factory']->createBuilder('form', $object)
Daha sonra, "normal bir şekilde" submition formu doğrulamak deneyin Ben daha kısa adı alanına sahip formu gönderdiğinizde
static public function loadValidatorMetadata(ClassMetadata $metadata) {
$metadata->addPropertyConstraint('name', new Assert\MinLength(5, array('message' => 'Name too short')));
}
, isValid hala doğru döndürür:
nesnesinde, ben bir loadValidatorMetadata statik yöntemi ekledik. Böyle nesne üzerinde bir doğrulama yöntemi çalıştırırsanız:
$errors = $app['validator']->validate($object)
kuralında dayanan bir hata döndürür, ancak biçim isValid bu hatayı bulmamaktadır. Symfony Form sınıfına baktığımda, Valid'in devre dışı bırakma yapılandırması doğru olduğunda alt alanları denetlemeyi atladığını buldum. Bu benim formum için geçerli, ama neden olduğu hakkında hiçbir fikrim yok. Silex servis sağlayıcılarını herhangi bir özel yapılandırma yapmadan normal yolla kaydettim. Nesne kısıtlamalarına dayanarak, formun nasıl doğrulanması başarısız olur?