Eccube\Controller\Admin\Setting\System\MasterdataController::index PHP Метод

index() публичный Метод

public index ( Application $app, Request $request, $entity = null )
$app Eccube\Application
$request Symfony\Component\HttpFoundation\Request
    public function index(Application $app, Request $request, $entity = null)
    {
        $data = array();
        $builder = $app['form.factory']->createBuilder('admin_system_masterdata');
        $event = new EventArgs(array('builder' => $builder), $request);
        $app['eccube.event.dispatcher']->dispatch(EccubeEvents::ADMIN_SETTING_SYSTEM_MASTERDATA_INDEX_INITIALIZE, $event);
        $form = $builder->getForm();
        if ('POST' === $request->getMethod()) {
            $form->handleRequest($request);
            if ($form->isValid()) {
                $event = new EventArgs(array('form' => $form), $request);
                $app['eccube.event.dispatcher']->dispatch(EccubeEvents::ADMIN_SETTING_SYSTEM_MASTERDATA_INDEX_COMPLETE, $event);
                if ($event->hasResponse()) {
                    return $event->getResponse();
                }
                return $app->redirect($app->url('admin_setting_system_masterdata_view', array('entity' => $form['masterdata']->getData())));
            }
        } elseif (!is_null($entity)) {
            $form->submit(array('masterdata' => $entity));
            if ($form['masterdata']->isValid()) {
                $entityName = str_replace('-', '\\', $entity);
                try {
                    $masterdata = $app['orm.em']->getRepository($entityName)->findBy(array(), array('rank' => 'ASC'));
                    $data['data'] = array();
                    $data['masterdata_name'] = $entity;
                    foreach ($masterdata as $value) {
                        $data['data'][$value['id']]['id'] = $value['id'];
                        $data['data'][$value['id']]['name'] = $value['name'];
                    }
                    $data['data'][] = array('id' => '', 'name' => '');
                } catch (MappingException $e) {
                }
            }
        }
        $builder2 = $app['form.factory']->createBuilder('admin_system_masterdata_edit', $data);
        $event = new EventArgs(array('builder' => $builder2), $request);
        $app['eccube.event.dispatcher']->dispatch(EccubeEvents::ADMIN_SETTING_SYSTEM_MASTERDATA_INDEX_FORM2_INITIALIZE, $event);
        $form2 = $builder2->getForm();
        return $app->render('Setting/System/masterdata.twig', array('form' => $form->createView(), 'form2' => $form2->createView()));
    }
MasterdataController