<?php
namespace example\FrontBundle\Controller;
use example\FrontBundle\Entity\CompanyUser;
use example\FrontBundle\Form\Type\CompanyUserType;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\HttpFoundation\Request;
class CompanyUserController extends Controller
{
private function preController()
{
$this->session = $this->getRequest()->getSession();
$companyUser = new CompanyUser();
$companyUser->setCompany($this->getUser()->getCompany());
$this->form = $this->createForm(new CompanyUserType(), $companyUser);
}
/**
* 登録初期
*
* @Route("/companyUser/regist/{id}", name="companyUser_regist")
* @Template()
*/
public function registAction($id = null)
{
$this->preController();
$this->session->remove($this->form->getName());
return $this->redirect($this->generateUrl('companyUser_input'));
}
/**
* 入力画面
*
* @Route("/companyUser/input", name="companyUser_input")
* @Template()
*/
public function inputAction()
{
$this->preController();
if ($this->session->has($this->form->getName())) {
$this->form->submit($this->session->get($this->form->getName()));
}
return ['form' => $this->form->createView()];
}
/**
* エラーチェック、登録処理
*
* @Route("/companyUser/complete", name="companyUser_complete")
* @Template()
*/
public function completeAction(Request $request)
{
if (!$request->isMethod('post')) {
return $this->redirect($this->generateUrl('companyUser_regist'));
}
$this->preController();
$this->form->submit($request->get($this->form->getName()));
if (!$this->form->isValid()) {
$this->session->set($this->form->getName(), $request->get($this->form->getName()));
return $this->redirect($this->generateUrl('companyUser_input'));
}
if ($this->session->has($this->form->getName())) {
$this->session->remove($this->form->getName());
}
$em = $this->getDoctrine()->getManager();
$em->persist($this->form->getData());
$em->flush();
return $this->redirect($this->generateUrl('companyUser'));
}
}