मेरे पास एक ग्राहक इकाई है जिसमें केवल एक अद्वितीय ईमेल फ़ील्ड है। मैं ग्राहक के ईमेल को संपादित करने की कोशिश कर रहा हूं और सत्यापन ठीक काम करता है। हालांकि मैं अपने नियंत्रक में इस है:Symfony2: मेरा फॉर्म isValid() से झूठा रिटर्न देता है लेकिन अद्वितीय बाधा स्थिति से getErrors() के लिए खाली सरणी
public function updateAction(Request $request, $id) {
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('AcmeDemoBundle:Customer')->find($id);
if (!$entity) {
throw $this->createNotFoundException('Unable to find Customer entity.');
}
$editForm = $this->createForm(new CustomerType(), $entity);
$editForm->bind($request);
if ($editForm->isValid()) {
$em->persist($entity);
$em->flush();
return $this->redirect($this->generateUrl('ticket_result'));
}
var_dump($editForm->getErrors());
return $this->render('AcmeDemoBundle:Customer:edit.html.twig', array(
'entity' => $entity,
'edit_form' => $editForm->createView(),
));
}
var_dump एक खाली सरणी देता है लेकिन सत्यापनकर्ता एक अनूठा त्रुटि सेट करता है और $editForm->isValid()
रिटर्न झूठी। प्रमाणीकरण के दौरान नियंत्रक में उस विशिष्ट त्रुटि की जांच करने का कोई तरीका है, क्या आप यह भी समझा सकते हैं कि यह एक खाली त्रुटि सरणी क्यों देता है? असल में, अगर यह त्रुटि आती है तो मैं "विलय" विकल्प प्रदान करना चाहता हूं।
संपादित:
namespace Acme\DemoBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
class CustomerType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('email', 'email', array('required'=>true))
;
}
public function setDefaultOptions(OptionsResolverInterface $resolver) {
$resolver->setDefaults(array(
'data_class' => 'Acme\DemoBundle\Entity\Customer',
'cascade_validation' => true,
));
}
public function getName() {
return 'acme_demobundle_customertype';
}
}
और टहनी टेम्पलेट: यहां formtype है
Acme\DemoBundle\Entity\Customer:
constraints:
- Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity:
fields: email
message: "A customer under that email address already exists"
properties:
email:
- Email: ~
क्या आपके ग्राहक के पास कोई उप-रूप है? – nifr
अपना टेम्पलेट दिखाएं, कृपया – Ziumin
मैंने पोस्ट अपडेट किया है और सत्यापन, टेम्पलेट और फॉर्मटाइप –