मैं अपने फार्म के साथ एक समस्या है, मैं इस त्रुटि हर बार है मैं एक टिप्पणी को सहेजना चाहते:अपेक्षित तर्क, वस्तु दिया
प्रकार सरणी या traversable कीअपेक्षित तर्क और ArrayAccess, वस्तु दिया
सबसे पहले मैं अपने वर्ग commentType बनाएँ:
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('comment', 'textarea')
->add('commentedName', 'text')
->add('idNews','hidden', array('error_bubbling'=>true))
->add('country', 'text')
->add('email','email')
->add('captcha', 'captcha');
}
मैं अपने रूप को अनुकूलित:
public function getDefaultOptions(array $options){
$collectionConstraint = new Collection (array (
'email' => new Email(array('message' => 'invalid address email')),
'commentedName' => array(new MaxLength(array('limit' => 30, 'message' => ''))),
'comment' => array(new MinLength(array('limit' => 20, 'message' => ''))),
'country' => new MinLength(array('limit' => 3, 'message' => '')),
'idNews' => array(new MaxLength(array('limit' => 30, 'message' => ''))),
));
return array('validation_constraint' => $collectionConstraint);
}
फिर मेरे नियंत्रक में मैं अपने प्रपत्र फोन और मैं डीबी में डेटा को बचाने:
$comment = new \Mybundle\BackendBundle\Entity\Comments();
$form = $this->createForm(new \Mybundle\MainBundle\Form\CommentType(), $comment);
$request = $this->get('request');
if ($request->getMethod() == 'POST') {
$form->bindRequest($request);
if ($form->isValid()) {
$idNews= $this->getDoctrine()
->getRepository('Mybundle\BackendBundle\Entity\News')
->find($id);
$comment->setIdNews($idNews);
$em = $this->getDoctrine()->getEntityManager();
$em->persist($comment);
$em->flush();
return $this->redirect($this->generateUrl('News',array('id' => $id,'slug'=>$slug)));
और मेरे टहनी में मैं करता हूँ:
<table style="float: right;" >
<tbody>
<tr>
<td>{{ form_widget(form.commentedName) }} </td>
<td>{{ form_label(form.commentedName, "name") }}</td>
</tr>
<tr>
<td class="comment-error">{{ form_errors(form.commentedName) }}</TD>
</tr>
<tr>
<td>{{ form_widget(form.country) }} </td>
<td>{{ form_label(form.country, "country") }}</td>
</tr>
<tr>
<td class="comment-error">{{ form_errors(form.country) }}</TD>
</tr>
<tr>
<td class="large_text">{{ form_widget(form.email) }} </td>
<td>{{ form_label(form.email, "address") }}</td>
</tr>
<tr>
<td class="comment-error">{{ form_errors(form.email) }}</td>
</tr>
<tr>
<td>{{ form_widget(form.comment) }} </td>
<td>{{ form_label(form.comment, "comment") }}</td>
</tr>
<tr>
<td class="comment-error">{{ form_errors(form.comment) }}</td>
</tr>
<tr>
<td>{{ form_widget(form.captcha) }} </td>
</tr>
<tr>
<td class="comment-error">{{ form_errors(form) }}</td>
</tr>
मैं टिप्पणी जब मैं अपने cotroller में ऑब्जेक्ट "$ टिप्पणी" के ऊपर पंक्ति में "शून्य" के साथ बदल गया है, मुझे त्रुटि नहीं है लेकिन मैं डेटाबेस में डेटा को सहेज नहीं सकता ...
किसी को भी कोई विचार है?
इसका मतलब है कि मैं अपने फॉर्म से getDefaultOptions को हटाता हूं और टिप्पणियों में फॉर्म के सभी फ़ील्ड को सत्यापित करता हूं टिप्पणियां का उपयोग करके इकाई ... – Nll
@ elec1984 हाँ, बिल्कुल। यह काम करेगा, चिंता मत करो। और मुझे लगता है कि एक ही स्थान (फ़ील्ड क्लास में अर्थ) में फ़ील्ड परिभाषा और सत्यापन होना संपादन के लिए बेहतर है। – gremo
ठीक है मुझे आशा है कि जीरेमो, टीएनक्स – Nll