Skip to content

Instantly share code, notes, and snippets.

@andrechavesg
Last active November 8, 2018 20:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save andrechavesg/8756d1581ac5202172381922f906b865 to your computer and use it in GitHub Desktop.
Save andrechavesg/8756d1581ac5202172381922f906b865 to your computer and use it in GitHub Desktop.
<?php
namespace App\Controller;
use App\Entity\Funcionario;
use App\Entity\Usuario;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
class UsuarioController extends Controller
{
/**
* @Route("/usuario/mostra",methods="GET")
*/
public function mostraAction()
{
return $this->render('Usuario/mostra.html.twig',["usuario" => new Usuario()]);
}
/**
* @Route("/usuario/novo",methods="GET")
*/
public function formulario()
{
$form = $this->createFormBuilder(new Usuario())
->add('login')
->add('senha')
->add('permissoes',ChoiceType::class,["multiple" => true,"choices" => ["ADMIN" => "Admin", "USUARIO" => "Usuário"]])
->setAction('/usuario/novo')
->getForm();
return $this->render("Usuario/novo.html.twig",["form" => $form->createView()]);
}
/**
* @Route("/usuario/novo",methods="POST")
*/
public function cria(Request $request)
{
$usuario = new Usuario();
$form = $this->createFormBuilder($usuario)
->add('login')
->add('senha')
->add('permissoes',ChoiceType::class,["multiple" => true,"choices" => ["ADMIN" => "Admin", "USUARIO" => "Usuário"]])
->getForm();
$form->handleRequest($request);
$em = $this->getDoctrine()->getManager();
$em->persist($usuario);
$em->flush();
return $this->redirect("/usuario/lista");
}
/**
* @Route("/usuario/lista",methods="GET")
*/
public function lista()
{
$repository = $this->getDoctrine()->getManager()->getRepository(Usuario::class);
return $this->render("Usuario/lista.html.twig",["usuarios" => $repository->findAll()]);
}
/**
* @Route("/usuario/edita/{id}",methods="GET")
*/
public function mostra(Usuario $usuario)
{
$form = $this->createFormBuilder($usuario)
->add('login')
->add('senha')
->add('permissoes',ChoiceType::class,["multiple" => true,"choices" => ["ADMIN" => "Admin", "USUARIO" => "Usuário"]])
->setAction("/usuario/edita/".$usuario->getId())
->getForm();
return $this->render('Usuario/edita.html.twig',["usuario" => $usuario,"form" => $form->createView()]);
}
/**
* @Route("/usuario/edita/{id}",methods="POST")
*/
public function edita(Usuario $usuario, Request $request)
{
$form = $this->createFormBuilder($usuario)
->add('login')
->add('senha')
->add('permissoes',ChoiceType::class,["multiple" => true,"choices" => ["ADMIN" => "Admin", "USUARIO" => "Usuário"]])
->getForm();
$form->handleRequest($request);
if ($form->isValid()) {
$usuario = $form->getData();
$em = $this->getDoctrine()->getManager();
$em->merge($usuario);
$em->flush();
return $this->redirect("/usuario/edita/".$usuario->getId());
}
return $this->render('Usuario/edita.html.twig',["usuario" => $usuario]);
}
/**
* @Route("/usuario/remove/{id}",methods="GET")
*/
public function delete(Usuario $usuario)
{
$em = $this->getDoctrine()->getManager();
$em->remove($usuario);
$em->flush();
return $this->redirect("/usuario/lista");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment