Как я могу использовать form_errors на модальном - отображать ошибки перед закрытием модального и обновлять страницу - PullRequest
0 голосов
/ 22 апреля 2019

Я пытаюсь отобразить ошибки, когда форма модальной формы отправлена ​​на главную страницу Я попробовал этот метод, но он не является единственным

       <div class="row">
          <ul>
             {% for error in formClasse.vars.errors.form.getErrors(true) %}
                <div class="col-12 alert alert-danger alert-dismissible fade show" role="alert">
                      <li>{{ error.message }}</li>
                      <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                           <span aria-hidden="true">&times;</span>
                      </button>
                </div>
             {% endfor %}
          </ul>
       </div>

<button class="float-right btn btn-success btn-rounded" data-toggle="modal" data-target="#ajouter_classe"><i class="fa fa-plus" data-backdrop="static" data-keyboard="false"></i> Ajouter une classe</button> 



 <!-- Start Modal ajouter Classe-->
    {{ include("@Admin/classe/new.html.twig") }}
 <!-- End Modal ajouter Classe -->

Это наш основной модал для добавления

<div class="modal fade" id="ajouter_classe" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
{{ form_start(formClasse, { 'method' : 'post', 'action': path('admin_classe_new') }) }}
<div class="modal-dialog" role="document">
    <div class="modal-content">
        <div class="modal-header">
            <h4 class="modal-title">Ajouter une classe</h4>
            <button type="button" class="close" data-dismiss="modal">&times;</button>
        </div>

        <div class="modal-body">

            <div class="form-group custom-mt-form-group">
                {{ form_widget(formClasse.filiere) }}
                <label class="control-label">Filière - Niveau<span class="text-danger">*</span></label>
                <i class="bar"></i>
            </div>

            <div class="form-group custom-mt-form-group">
                {{ form_widget(formClasse.classe) }}
                <label class="control-label">Classe<span class="text-danger">*</span></label>
                <i class="bar"></i>
                {{ form_errors(formClasse.classe) }}
            </div>  

        </div>

        <div class="modal-footer">
            <button class="btn btn-primary mr-2" type="submit">Ajouter</button>
            <button class="btn btn-dark" data-dismiss="modal">Annuler</button>
        </div>
    </div>
</div>
{{ form_end(formClasse) }}

Контроллеры

/**
 * Lists all cycle entities.
 *
 * @Route("/classes", name="admin_classes_index")
 * @Method("GET")
 */
public function indexClasseAction(Request $request)
{   

    $classe = new Classe();
    $em = $this->getDoctrine()->getManager();

    /*Classe forms*/
    $formClasse = $this->createForm('AdminBundle\Form\ClasseType', $classe);
    $editFormClasse = $this->createForm('AdminBundle\Form\ClasseType', $classe);

    $classes = $em->getRepository('AdminBundle:Classe')->findAll();


    return $this->render('@Admin/classe/index_gestion.html.twig', array(
        'classes' => $classes,
        'formClasse' => $formClasse->createView(),
        'edit_formClasse' => $editFormClasse->createView(),
    ));
}

/**
 * Creates a new classe entity.
 *
 * @Route("/classe/new", name="admin_classe_new")
 * @Method({"GET", "POST"})
 */
public function newClasseAction(Request $request)
{
    $classe = new Classe();
    $form = $this->createForm('AdminBundle\Form\ClasseType', $classe);
    $form->handleRequest($request);

    if ($form->isSubmitted() && $form->isValid()) {
        $em = $this->getDoctrine()->getManager();
        $em->persist($classe);
        $em->flush();

        $this->addFlash('success', 'La nouvelle classe '.$classe->getClasse().' a été ajoutée avec succès');

        return $this->redirectToRoute('admin_classes_index');
    }

    return $this->redirectToRoute('admin_classes_index');
}

Любые предложения, пожалуйста, чтобы избежать стандартного способа (добавить страницу в ДОБАВИТЬ, а НЕ посредством Модал), потому что идея состоит в том, чтобы сделать CRUD на той же странице

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...