Pārlūkot izejas kodu

Allow read-only fields when editing collections of entities.

Romain Geissler 13 gadi atpakaļ
vecāks
revīzija
858d29c482
2 mainītis faili ar 5 papildinājumiem un 2 dzēšanām
  1. 4 1
      Admin/AdminHelper.php
  2. 1 1
      Controller/HelperController.php

+ 4 - 1
Admin/AdminHelper.php

@@ -85,16 +85,18 @@ class AdminHelper
      * @throws \RuntimeException
      *
      * @param \Sonata\AdminBundle\Admin\AdminInterface $admin
+     * @param object                                   $subject
      * @param string                                   $elementId
      *
      * @return array
      */
-    public function appendFormFieldElement(AdminInterface $admin, $elementId)
+    public function appendFormFieldElement(AdminInterface $admin, $subject, $elementId)
     {
         // retrieve the subject
         $formBuilder = $admin->getFormBuilder();
 
         $form = $formBuilder->getForm();
+        $form->setData($subject);
         $form->bindRequest($admin->getRequest());
 
         // get the field element
@@ -138,6 +140,7 @@ class AdminHelper
         $data[$childFormBuilder->getName()][] = $value;
 
         $finalForm = $admin->getFormBuilder()->getForm();
+        $finalForm->setData($subject);
 
         // bind the data
         $finalForm->setData($form->getData());

+ 1 - 1
Controller/HelperController.php

@@ -80,7 +80,7 @@ class HelperController
 
         $admin->setSubject($subject);
 
-        list($fieldDescription, $form) = $this->helper->appendFormFieldElement($admin, $elementId);
+        list($fieldDescription, $form) = $this->helper->appendFormFieldElement($admin, $subject, $elementId);
 
         $view = $this->helper->getChildFormView($form->createView(), $elementId);