protected function configure() { parent::configure(); $this->setName('doctrine.orm.list')->addOption('entityManagerName', null)->setOption('filterQueryClosure', function (QueryBuilder $query, array $filterQueryCallbacks, $action, $container) { foreach ($filterQueryCallbacks as $callback) { call_user_func($callback, $query, $container); } })->setOption('createDataClosure', function (array $createDataCallbacks, $action, $container) { $dataClass = $action->getDataClass(); $data = new $dataClass(); foreach ($createDataCallbacks as $callback) { call_user_func($callback, $data, $container); } return $data; })->setOption('findDataByIdClosure', function ($id, array $findDataByIdCallbacks, $action, $container) { $em = $container->get('doctrine')->getEntityManager($action->getOption('entityManagerName')); $data = $em->getRepository($action->getDataClass())->find($id); foreach ($findDataByIdCallbacks as $callback) { if ($data) { $data = call_user_func($callback, $data, $em, $container); } } return $data; })->setOption('saveDataClosure', function ($data, $action, $container) { $em = $container->get('doctrine')->getEntityManager($action->getOption('entityManagerName')); $em->persist($data); $em->flush(); })->setOption('deleteDataClosure', function ($data, $action, $container) { $em = $container->get('doctrine')->getEntityManager($action->getOption('entityManagerName')); $em->remove($data); $em->flush(); }); }
public function configureActionsVars(ParameterBag $actionsVars) { parent::configureActionsVars($actionsVars); $dataClass = $this->getDataClass(); $actionsVars->set('createData', function () use($dataClass) { return new $dataClass(); }); $actionsVars->set('findDataById', function ($id) use($dataClass) { return $dataClass::getRepository()->findOneById($id); }); $actionsVars->set('saveData', function ($data) { $data->save(); }); $actionsVars->set('deleteData', function ($data) { $data->delete(); }); }
protected function configure() { parent::configure(); $this ->setName('propel.list') ->setOption('filterQueryClosure', function (\ModelCriteria $query, array $filterQueryCallbacks, $action, $container) { foreach ($filterQueryCallbacks as $callback) { call_user_func($callback, $query, $container); } }) ->setOption('createDataClosure', function (array $createDataCallbacks, $action, $container) { $dataClass = $action->getDataClass(); $data = new $dataClass(); foreach ($createDataCallbacks as $callback) { call_user_func($callback, $data, $container); } return $data; }) ->setOption('findDataByIdClosure', function ($id, array $findDataByIdCallbacks, $action, $container) { $queryClass = $action->getDataClass().'Query'; $data = $queryClass::create()->findPk($id); foreach ($findDataByIdCallbacks as $callback) { if ($data) { $data = call_user_func($callback, $data, $container); } } return $data; }) ->setOption('saveDataClosure', function ($data, $action, $container) { $data->save(); }) ->setOption('deleteDataClosure', function ($data, $action, $container) { $data->delete(); }) ; }
protected function configure() { parent::configure(); $this ->setName('mandango.list') ->setOption('filterQueryClosure', function (Query $query, array $filterQueryCallbacks, $action, $container) { foreach ($filterQueryCallbacks as $callback) { call_user_func($callback, $query, $container); } }) ->setOption('createDataClosure', function (array $createDataCallbacks, $action, $container) { $data = $container->get('mandango')->create($action->getDataClass()); foreach ($createDataCallbacks as $callback) { call_user_func($callback, $data, $container); } return $data; }) ->setOption('findDataByIdClosure', function ($id, array $findDataByIdCallbacks, $action, $container) { $data = $container->get('mandango')->getRepository($action->getDataClass())->findOneById($id); foreach ($findDataByIdCallbacks as $callback) { if ($data) { $data = call_user_func($callback, $data, $container); } } return $data; }) ->setOption('saveDataClosure', function ($data, $action, $container) { $data->save(); }) ->setOption('deleteDataClosure', function ($data, $action, $container) { $data->delete(); }) ; }
public function configureActionsVars(ParameterBag $actionsVars) { parent::configureActionsVars($actionsVars); $dataClass = $this->getDataClass(); $em = $this->get('doctrine.orm.entity_manager'); $actionsVars->set('createData', function () use($dataClass) { return new $dataClass(); }); $actionsVars->set('findDataById', function ($id) use($em, $dataClass) { return $em->getRepository($dataClass)->find($id); }); $actionsVars->set('saveData', function ($data) use($em) { $em->persist($data); $em->flush(); }); $actionsVars->set('deleteData', function ($data) use($em) { $em->remove($data); $em->flush(); }); }