2014-05-10 11 views
5

Ich möchte einen versteckten Wert für meine Foreign Key Entity im Controller machen.Entity Feldtyp in Symfony2 versteckt

Meine bisherigen Controller ist wie folgt aus (funktioniert):

->add('id_grup', 'entity', array('class' => 'Sifo\AdminBundle\Entity\MstGrup')) 

ich so einen versteckten Wert meiner Form zuweisen möchten:

->add('id_grup', 'hidden', array('data' => $id)) 

Aber es gibt mir eine Fehlermeldung:

ContextErrorException: Catchable Fatal Error: Argument 1 passed to Sifo\AdminBundle\Entity\DftGrupMapel::setIdGrup() must be an instance of Sifo\AdminBundle\Entity\MstGrup, string given, called in C:\Sifony\vendor\symfony\symfony\src\Symfony\Component\PropertyAccess\PropertyAccessor.php on line 360 and defined in C:\Sifony\src\Sifo\AdminBundle\Entity\DftGrupMapel.php line 179

Wie kann ich einer Fremdschlüsseleinheit, die ausgeblendet ist, einen Wert zuweisen? Vielen Dank.

+0

duplizieren: http://stackoverflow.com/questions/16905490/symfony2-data-transformer-on-hidden-field – ihsan

Antwort

1

Yohooo, schließlich seine Werke ... Ich brauche die Einheit Standard definieren, bevor Formular erstellen und nicht hinzufügen, wieder in Formbuilder:

public function manageAction(Request $request, $id) 
{ 
    $em = $this->getDoctrine()->getManager(); 
$entity = $em->getRepository('SifoAdminBundle:MstGrup')->find($id); 

if (!$entity) { 
    throw $this->createNotFoundException('Unable to find MstGrup entity.'); 
} 

$entity_new = new DftGrupMapel(); 
$entity_new->setIdGrup($entity); 
$new_form = $this->createFormBuilder($entity_new) 
    ->setAction($this->generateUrl('admin_grup_mapel_manage', array('id' => $id))) 
    ->setMethod('POST') 
->getForm(); 

$new_form->handleRequest($request); 

if ($new_form->isValid()) { 
    $em_new = $this->getDoctrine()->getManager(); 
    $em_new->persist($entity_new); 
    $em_new->flush(); 

    return $this->redirect($this->generateUrl('admin_grup_mapel_manage', array('id' => $id))); 
} 

return $this->render('SifoAdminBundle:DftGrupMapel:manage.html.twig', array(
    'entity'  => $entity, 
    'new_form' => $new_form->createView(),    
)); 
} 

Hoffnung jemand, der in diesem Problem kämpfen helfen kann zu haha ​​...

Verwandte Themen