Php 表格SYMFONY 5提交时未发生任何情况
我确实用这个表单类型制作了一个表单:Php 表格SYMFONY 5提交时未发生任何情况,php,forms,doctrine-orm,symfony5,Php,Forms,Doctrine Orm,Symfony5,我确实用这个表单类型制作了一个表单: <?php namespace App\Form; use App\Entity\Snc; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\{ChoiceType, CollectionType, DateType, IntegerType, TextareaType, TextType}; use Symfony
<?php
namespace App\Form;
use App\Entity\Snc;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\{ChoiceType, CollectionType, DateType, IntegerType,
TextareaType, TextType};
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class SncType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('en_tete', TextareaType::class, [ 'attr' => ['name' => 'entete', 'class' => 'bg-light',
'placeholder' => 'Saississez votre en-tête', 'rows' => '14' ],
'required' => false] )
->add('date_acte', DateType::class, [ 'widget' => 'single_text', 'attr' => ['type' => 'date', 'placeholder' => 'jj/mm/aaaa']])
->add('forme', ChoiceType::class, [ 'expanded' => false,
'multiple' => false,
'choices' => ['SNC' => 'SNC']])
->add('denomination', TextType::class, [ 'attr' => ['onkeyup' => 'this.value = this.value.toUpperCase()',
'placeholder' => 'Nom dans les statuts, en MAJUSCULE'],
'label_attr' => ['type' => 'text']])
->add('adresse', TextType::class, [ 'attr' => ['type' => 'text',
'name' => 'adresse1', 'placeholder' => 'Adresse de la société']])
->add('adresse_suite', TextType::class, [ 'attr' => ['type' => 'text', 'name' => 'adresse2','class' => 'bg-light',
'placeholder' => 'Complément d\'adresse'],
'required' => false])
->add('code_postal', TextType::class, [ 'attr' => ['class' => 'form-control', 'type' => 'text',
'name' => 'Code postal',
'placeholder' => 'ex: 75001']])
->add('ville', TextType::class, [ 'attr' => ['type' => 'text', 'name' => 'ville',
'placeholder' => 'ex: Paris']])
->add('greffe', TextType::class, [ 'attr' => ['type' => 'text', 'name' => 'greffe',
'placeholder' => 'Greffe concerné']])
->add('capital', IntegerType::class, [ 'attr' => ['type' => 'number', 'name' => 'Capital',
'placeholder' => 'Capital en euro(s)', 'min' => '1']])
->add('duree', IntegerType::class, [ 'attr' => ['type' => 'number',
'name' => 'Durée', 'min' => '1', 'placeholder' => 'En années, ex: 99', 'value' => 99]])
->add('objet', TextareaType::class, [ 'attr' => ['type' => 'text', 'name' => 'Objet',
'placeholder' => 'Objet tel qu\'il apparait dans les statuts' ]])
->add('gerants', CollectionType::class, [ 'entry_type' => GerantsType::class,
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
'prototype' => true,
'delete_empty' => true,])
->add('gerants_personne_morale', CollectionType::class, [ 'entry_type' => GerantsPersonneMoraleType::class,
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
'prototype' => true,
'delete_empty' => true,])
->add( 'associes', CollectionType::class, [ 'entry_type' => AssociesType::class,
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
'prototype' => true,
'delete_empty' => true,])
->add('associes_personne_morale', CollectionType::class, [ 'entry_type' => AssociesPersonneMoraleType::class,
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
'prototype' => true,
'delete_empty' => true,])
->add('commissaire_aux_comptes', CollectionType::class, [ 'entry_type' => CommissaireAuxComptesType::class,
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
'prototype' => true,
'delete_empty' => true,])
->add('commissaire_aux_comptes_personne_morale', CollectionType::class, [ 'entry_type' => CommissaireAuxComptesMoraleType::class,
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
'prototype' => true,
'delete_empty' => true,])
->add('commissaire_aux_comptes_suppleant', CollectionType::class, [ 'entry_type' => CommissaireAuxComptesSuppleantType::class,
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
'prototype' => true,
'delete_empty' => true,])
->add('commissaire_aux_comptes_suppleant_personne_morale', CollectionType::class, ['entry_type' => CommissaireAuxComptesSuppleantMoraleType::class,
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
'prototype' => true,
'delete_empty' => true,])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Snc::class,
]);
}
}
<?php
namespace App\Controller;
use App\Entity\Commande;
use App\Entity\Snc;
use App\Form\{AccountType, CommandeType, SncType};
use App\Security\LoginFormAuthenticator;
use App\Service\{CustomMailer, UserAuto};
use Doctrine\ORM\EntityManagerInterface;
use Knp\Snappy\Pdf;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\{RedirectResponse, Request, Response};
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
use Symfony\Component\Security\Guard\GuardAuthenticatorHandler;
use Twig\Environment;
use Twig\Error\{LoaderError, RuntimeError, SyntaxError};
class SncController extends AbstractController
{
// CRUD SNC
/**
* @var Environment
*/
private $twig;
private $pdf;
/**
* EurlSciSelarlScController constructor.
* @param Environment $twig
* @param Pdf $pdf
*/
public function __construct(Environment $twig, Pdf $pdf)
{
$this->twig = $twig;
$this->pdf = $pdf;
}
// CREATE
/**
* @Route("/snc_creation", name="snc_creation")
* @param Request $request
* @param EntityManagerInterface $manager
* @param UserPasswordEncoderInterface $encoder
* @param MailerInterface $mailer
* @param GuardAuthenticatorHandler $guardHandler
* @param LoginFormAuthenticator $authenticator
* @return RedirectResponse|Response
*/
public function snc_creation(Request $request, EntityManagerInterface $manager, UserPasswordEncoderInterface $encoder, MailerInterface $mailer, GuardAuthenticatorHandler $guardHandler, LoginFormAuthenticator $authenticator)
{
$snc = new Snc();
$user = $this->getUser();
$form = $this->createForm(SncType::class, $snc);
$form->handleRequest($request);
$formUser = $this->createForm(AccountType::class, $user);
$formUser->handleRequest($request);
if($form->isSubmitted() && $form->isValid())
{
// User account created if no existing account found
if($user == null)
{
$userAuto = new UserAuto();
$userAuto->userAuto($request, $encoder, $guardHandler, $authenticator, $manager, $formUser);
// Get the user
$user = $userAuto->getUser();
$mdp = $userAuto->getMdp();
//Sending him an e-mail with his credentials in order to let him change pw
$customMailer = new CustomMailer();
$customMailer->automaticAccount($user, $mdp, $mailer);
}
$snc->setUser($user);
$snc->setCreatedAt(new \DateTime('now'));
$manager->persist($snc);
$manager->flush();
///////////////////////////////////// MAKING COMMANDE
/// RETRIEVING PRIME DATAS FOR ANNONCE
$entete = $snc->getEnTete();
$forme = $snc->getForme();
$denomination = $snc->getDenomination();
$date_acte = $snc->getDateActe();
$date_acte = date_format($date_acte, 'd-m-Y');
$annonce = $entete. "\n". "Par Acte la " . $forme. " " . $denomination ." a été constitué le ". $date_acte . "...";
/////////////////////////////////////INSTANCE OF COMMANDE AND FLUSHING
//
$commande = new Commande();
$commande->setUser($user);
$commande->setAEffectuer(0);
$commande->setPayee(0);
$commande->setCreatedAt(new \DateTime('now'));
$commande->setSnc($snc);
$commande->setAnnonce($annonce);
$commande->setPrix(20); // Temporary price
$manager->persist($commande);
$manager->flush();
//////////////////////////////////// FLASH MESSAGE IN FLASHBAG
$this->addFlash(
'success', "Félicitations ! Veuilez vérifier l'annonce puis procédez au <strong> paiement</strong>."
);
return $this->redirectToRoute('snc_visualiser', [
'snc' => $snc->getId(),
'denomination' => $snc->getDenomination(),
'commande' => $commande->getId(),
]);
}
if(!$user) {
$this->addFlash(
'info',
'Si vous possédez un compte chez Modèle Annonce Légale, veuillez-vous connecter avant de continuer'
);
}
return $this->render('snc/snc_creer.html.twig', [
'form' => $form->createView(),
'form_user' => $formUser->createView(),
]);
}
...
}