Eccube\Controller\Admin\Product\ClassCategoryController::index PHP Method

index() public method

public index ( Application $app, Request $request, $class_name_id, $id = null )
$app Eccube\Application
$request Symfony\Component\HttpFoundation\Request
    public function index(Application $app, Request $request, $class_name_id, $id = null)
    {
        //
        $ClassName = $app['eccube.repository.class_name']->find($class_name_id);
        if (!$ClassName) {
            throw new NotFoundHttpException('商品規格が存在しません');
        }
        if ($id) {
            $TargetClassCategory = $app['eccube.repository.class_category']->find($id);
            if (!$TargetClassCategory || $TargetClassCategory->getClassName() != $ClassName) {
                throw new NotFoundHttpException('商品規格が存在しません');
            }
        } else {
            $TargetClassCategory = new \Eccube\Entity\ClassCategory();
            $TargetClassCategory->setClassName($ClassName);
        }
        //
        $builder = $app['form.factory']->createBuilder('admin_class_category', $TargetClassCategory);
        $event = new EventArgs(array('builder' => $builder, 'ClassName' => $ClassName, 'TargetClassCategory' => $TargetClassCategory), $request);
        $app['eccube.event.dispatcher']->dispatch(EccubeEvents::ADMIN_PRODUCT_CLASS_CATEGORY_INDEX_INITIALIZE, $event);
        $form = $builder->getForm();
        if ($request->getMethod() === 'POST') {
            $form->handleRequest($request);
            if ($form->isValid()) {
                log_info('規格分類登録開始', array($id));
                $status = $app['eccube.repository.class_category']->save($TargetClassCategory);
                if ($status) {
                    log_info('規格分類登録完了', array($id));
                    $event = new EventArgs(array('form' => $form, 'ClassName' => $ClassName, 'TargetClassCategory' => $TargetClassCategory), $request);
                    $app['eccube.event.dispatcher']->dispatch(EccubeEvents::ADMIN_PRODUCT_CLASS_CATEGORY_INDEX_COMPLETE, $event);
                    $app->addSuccess('admin.class_category.save.complete', 'admin');
                    return $app->redirect($app->url('admin_product_class_category', array('class_name_id' => $ClassName->getId())));
                } else {
                    log_info('規格分類登録エラー', array($id));
                    $app->addError('admin.class_category.save.error', 'admin');
                }
            }
        }
        $ClassCategories = $app['eccube.repository.class_category']->getList($ClassName);
        return $app->render('Product/class_category.twig', array('form' => $form->createView(), 'ClassName' => $ClassName, 'ClassCategories' => $ClassCategories, 'TargetClassCategory' => $TargetClassCategory));
    }
ClassCategoryController