IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

[Twig] Template depuis twig, ok. Template depuis base de données, échec.


Sujet :

Symfony PHP

  1. #1
    Invité
    Invité(e)
    Par défaut [Twig] Template depuis twig, ok. Template depuis base de données, échec.
    Bien le bonjour à vous,

    Après recherche chez Google ainsi que dans le forum dédié ici, je ne puis résoudre un souci complètement bloquant.

    Afin de séparer les métiers et les interfaces d'administration, l'affichage d'un twig s'effectue ainsi : si en base le champs "leTemplate" est NULL alors je pioche dans Resources/views/LeController/leTemplate.html.twig sinon je récupère le html twiggé depuis la base.

    Le test opéré comporte le même twig pour la base et pour le fichier.
    Celui-ci contient un formulaire avec les méthodes associées (form_errors, form_label, ...) [cf Annexe 1].

    Lorsque l'on pioche dans le fichier Twig pas de souci, il s'affiche bien.
    Malheureusement, lorsque l'on récupère le code html depuis la base, j'ai ce message :

    Template "form_div_layout.html.twig" is not defined in inscription at line 19.
    D'une part la ligne 19 représente {{ form_errors(form) }}, comment se fait-il qu'il provoque une erreur avant la ligne 1 avec {% form_theme form 'LeBundle:Form:fields.html.twig' %} ?

    D'autre part, j'ai également essayé sans le form_theme mais le résultat est le même. La méthode render() ferait-elle plus de choses que la simple incorporation de fichier twig ?

    En sommes, l'ensemble de l'application est basé sur ce procédé de saisie de twig par l'intermédiaire de l'éditeur ace. Auriez-vous une piste de résolution ?

    Agréable journée à vous tout en vous remerciant d'avance.

    Cordialement,

    --------------------------------------

    Annexe 1 : Code du formulaire twiggé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    {% form_theme form 'LeBundle:Form:fields.html.twig' %}
     
    {% if formPostedSuccess %}
        <div id="ResultForm">
            <div id="ResultFormMessage">
                {% trans %}Votre inscription a bien été prise en compte.{% endtrans %}
            </div>
        </div>
    {% else %}
        <form action='{{ PHP_SELF }}' method='post'>
            <fieldset class='formInscription'>
                <legend class='formInscription_header'>
                    {% trans %}Inscription{% endtrans %}
                </legend>
                <!-- Les erreurs générales du formulaire. -->
                {{ form_errors(form) }}
                <div class='formInscription_table'>
                    <div class='formInscription_tableRow'>
                        <h4 class='formInscription_tableCell'>
                            <!-- Génération du label. -->
                            {{ form_label(form.email, "Email"|trans) }} :
                        </h4>
                        <div class='formInscription_tableCell'>
                            <!-- Affichage des erreurs pour ce champ précis. -->
                            {{ form_errors(form.email) }}
                            <!-- Génération du champs. -->
                            {{ form_widget(form.email) }}
                        </div>
                    </div>
                    {# ... #}
                    <div class='ModuleSM_formInscription_tableRow'>
                        <h4 class='ModuleSM_formInscription_tableCell'>
     
                        </h4>
                        <div class='ModuleSM_formInscription_tableCell'>
                            <input type='submit' value="{% trans %}Inscription{% endtrans %}" />
                        </div>
                    </div>
                </div>
            </fieldset>
            {{ form_rest(form) }}
        </form>
    {% endif %}
    --------------------

    Annexe 2 : Code PHP de l'appel au template depuis la base ou le fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    $Culture = $repository->findOneBy(array('clientid' => $clientId, 'cultureid' => $currentCulture));
     
    if($Culture === null) {
        $InscriptionContentTemplate = $this->render('LeBundle:LeController:LeTemplate.hmtl.twig', $paramsTemplate);
    } else {
        $InscriptionContentTemplate = $Culture->getTemplate();
    }
     
    $loaderFromBdd = new \Twig_Loader_Array(array(
        'inscription'    => $InscriptionContentTemplate
    ));
     
    $loader = $twig->getLoader();
    $twig->setLoader($loaderFromBdd);
    $template = $twig->loadTemplate('inscription');
    try {
        $renderedContent = $template->render($paramsTemplate);
    } catch(\Exception $e) {
        $twig->setLoader($loader);
        throw $e;
    }
    $twig->setLoader($loader);
     
    return new Response($renderedContent);
    Dernière modification par Invité ; 20/01/2012 à 11h12. Motif: Nouvelle annexe ajoutée

Discussions similaires

  1. Réponses: 6
    Dernier message: 14/05/2013, 18h57
  2. [Débutant] Update SQL depuis un datagridview vers la base de données.
    Par didzym dans le forum C#
    Réponses: 3
    Dernier message: 16/01/2012, 12h09
  3. Connection à las base de données : échec
    Par manueld dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 13/04/2010, 21h31
  4. [MySQL] Recherche depuis une page dans une base de données
    Par illidan05 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 27/07/2009, 01h04
  5. dbca base de données depuis template
    Par younes32 dans le forum Administration
    Réponses: 0
    Dernier message: 19/02/2009, 11h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo