2013-08-11 9 views
9

dodam non pole odwzorowany na typ formularza Symfony2:Sprawdź poprawność wyboru nie przyporządkowuje się do jednostki w postaci Symfony2

$builder->add('terms','checkbox', array('mapped' => false, 
     'constraints' => array(new NotBlank()))); 

Ale NotBlank() ograniczenie nie działa! Tylko jeśli zmienię typ z "checkbox" na "text", działa on zgodnie z oczekiwaniami. Jak więc sprawdzić poprawność pola wyboru? Oczywiście próbowałem również z ograniczeniami "True()", "EqualTo()" i "Długość (...)". Ale bez powodzenia. Próbowałem również różnych wartości POST (1/0, true/false, on/off ...) dla pola.

Jaka jest duża różnica między polem wyboru a polem tekstowym dotyczącym sprawdzania pól formularza w symfony2?

Niż Stef

+0

Aby oczy na swoje pytanie, należy oznaczyć je z najpopularniejszych tagów, które są odpowiednie do Twojego pytania - w tym przypadku, chciałbym polecić zastępując jeden z twoich znaczników, na przykład znacznik 'constraints' z 'PHP'. – Brionius

Odpowiedz

12

NotBlank sprawdza ciąg nie będzie pusta. Spróbuj również użyć NotNull musi również działać.

Potwierdza, że ​​wartość jest prawdziwa. W szczególności sprawdza, czy ta wartość jest dokładnie równa true, dokładnie liczba całkowita 1 lub dokładnie ciąg "1". To ograniczenie może zostać zastosowane do właściwości (np. TermsAccepted property w modelu rejestracji).

+0

Thanx. Działa teraz. – kieste

+1

[prawda] (http://symfony.com/doc/current/reference/constraints/True.html) działa dla mnie, aby potwierdzić pole wyboru, dziękuję. –

8

Updated odpowiedź na Symfony 3.0:

use Symfony\Component\Form\Extension\Core\Type\CheckboxType; 
use Symfony\Component\Validator\Constraints\IsTrue; 

// ... 
{ 
    $builder->add('terms', CheckboxType::class, array('constraints'=>new IsTrue(array('message'=>'Needs to be clicked'))); 
} 
Powiązane problemy