1313
1414use DateTime ;
1515use Doctrine \DBAL \Types \Types ;
16+ use Doctrine \ORM \EntityManagerInterface ;
1617use Exception ;
1718use Symfony \Bundle \FrameworkBundle \Controller \AbstractController ;
1819use Symfony \Component \HttpFoundation \Request ;
@@ -37,7 +38,7 @@ class DatatableController extends AbstractController
3738 *
3839 * @return Response
3940 */
40- public function editAction (Request $ request)
41+ public function editAction (Request $ request, EntityManagerInterface $ entityManager ): Response
4142 {
4243 if ($ request ->isXmlHttpRequest ()) {
4344 // x-editable sends some default parameters
@@ -57,7 +58,7 @@ public function editAction(Request $request)
5758 }
5859
5960 // get an object by its primary key
60- $ entity = $ this ->getEntityByPk ($ entityClassName , $ pk );
61+ $ entity = $ this ->getEntityByPk ($ entityClassName , $ pk, $ entityManager );
6162
6263 /** @var PropertyAccessor $accessor */
6364 /** @noinspection PhpUndefinedMethodInspection */
@@ -73,9 +74,8 @@ public function editAction(Request $request)
7374 null !== $ path ? $ accessor ->setValue ($ entity , $ path , $ value ) : $ accessor ->setValue ($ entity , $ field , $ value );
7475
7576 // save all
76- $ em = $ this ->getDoctrine ()->getManager ();
77- $ em ->persist ($ entity );
78- $ em ->flush ();
77+ $ entityManager ->persist ($ entity );
78+ $ entityManager ->flush ();
7979
8080 return new Response ('Success ' , 200 );
8181 }
@@ -92,11 +92,9 @@ public function editAction(Request $request)
9292 *
9393 * @param string $entityClassName
9494 */
95- private function getEntityByPk ($ entityClassName , $ pk ): object
95+ private function getEntityByPk ($ entityClassName , $ pk, EntityManagerInterface $ entityManager ): object
9696 {
97- $ em = $ this ->getDoctrine ()->getManager ();
98-
99- $ entity = $ em ->getRepository ($ entityClassName )->find ($ pk );
97+ $ entity = $ entityManager ->getRepository ($ entityClassName )->find ($ pk );
10098 if (! $ entity ) {
10199 throw $ this ->createNotFoundException ('DatatableController::getEntityByPk(): The entity does not exist. ' );
102100 }
0 commit comments