Wenn dies eine Situation, in der Anwendung einmalig ist (wenn es nicht ich ist ein custom constraint dafür schreiben würde), können Sie eine schnelle Überprüfung in Ihrem Controller tun können, nachdem Sie das Formular handhaben und vor dem gültigen Scheck.
Zum Beispiel;
<?php
namespace Acme\Bundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Form\FormError;
class ArtistPhotoController extends Controller {
// ...
public function myFormAction(Request $request)
{
// create the form
$form = $this->createFormBuilder(null)
->add('number1', 'number', [
'required' => false,
]
)
->add('number2', 'number', [
'required' => false,
]
)
->add('number3', 'number', [
'required' => false,
]
)
->add('number4', 'number', [
'required' => false,
]
)
->add('submit', 'submit', ['label' => 'Check'])
->getForm();
$form->handleRequest($request);
// checky check for custom validation
if ($form->isSubmitted()) {
$number1 = $form->get('number1')->getData();
$number2 = $form->get('number2')->getData();
$number3 = $form->get('number3')->getData();
$number4 = $form->get('number4')->getData();
if (($number2+$number3+$number4) !== $number1) {
$form->get('number1')->addError(new FormError('Num1 not equal to 2+3+4'));
}
// any other rules you want to make up...
}
if ($form->isSubmitted() && $form->isValid()) {
// do whatever
}
return $this->render('MyBundle:foo:bar.html.twig', array(
'form' => $form->createView()
));
}
}
zeigen Sie uns Ihren Code – ghazi2008