Πώς μπορώ να περάσετε παραμέτρους σε ένα μπλοκ Symfony2 Κλαδί;

ψήφοι
17

Θέλω να δημιουργήσει κεφαλίδες πίνακα σε ένα μπλοκ κλαδί και επαναχρησιμοποίηση τους σε ολόκληρη την σελίδα, αυτή η σελίδα έχει περίπου 5 διαφορετικούς πίνακες με περίπου τις ίδιες κεφαλίδες. Ο κώδικας μπλοκ είναι τέτοια:

{% block table_headers %}
    <th>Fiscal Year</th>
    <th>End Date</th>
    <th>Period Length</th>
    {% for item in result.FinancialStatements.COAMap.mapItem %}
        {% if item.statementType == statementType %}
            <th>` item`.`_ ` (` item`.`coaItem `)</th>
        {% endif %}
    {% endfor %} 
{% endblock %}

Το κλειδί γραμμή στο παραπάνω κώδικα είναι

{% if item.statementType == statementType %}

Θέλω να περάσει το statementType ως παράμετρος όπου είμαι καθιστώντας το μπλοκ, όπως έτσι:

{% render block.table_headers with {'statementType': 'INC'} %}

Αλλά αυτό δεν λειτουργεί. Θέλω να κρατήσει το μπλοκ και την απόδοση του στο ίδιο αρχείο (αλλά διαφορετικά μπλοκ), για την εννοιολογική εγγύτητα.

Είναι ακόμα δυνατόν να χρησιμοποιηθούν μπλοκ όπως αυτό; Έχω εξέτασε τα έγγραφα Symfony2 και δεν μπορούσε να βρει κάτι που πρότεινε αυτό θα μπορούσε να γίνει, αλλά φαίνεται ότι μια τέτοια προφανή χρήση του μπλοκ για μένα.

Δημοσιεύθηκε 20/05/2011 στις 07:58
πηγή χρήστη
Σε άλλες γλώσσες...                            


7 απαντήσεις

ψήφοι
4

Ακούγεται σαν να θέλετε Κλαδί του μακροεντολές διαθέτουν . Εναλλακτικά γράφετε μπλοκ σας ως ένα ξεχωριστό πρότυπο και χρήση περιλαμβάνουν .

Απαντήθηκε 03/06/2011 στις 12:58
πηγή χρήστη

ψήφοι
7

{% render block.table_headers with {'statementType': 'INC'} %}δεν αναγνωρίζεται από Symfony. Θα πρέπει να χρησιμοποιήσετε:

{% render "yourBundle:controleur:action" with { 'arg1' : 'value1', 'arg2' : 'value2' } %}
Απαντήθηκε 22/08/2012 στις 16:32
πηγή χρήστη

ψήφοι
0

Μια άλλη θα ήταν να δημιουργηθεί μια επέκταση Κλαδί, δείτε

http://symfony.com/doc/current/cookbook/templating/twig_extension.html

Κλαδί σας λειτουργία φροντίζοντας να καταστήσει την κεφαλίδα

return $this->renderView("MyBundle:Twig:tableHeader.html.twig", array( 'result' => $result));
Απαντήθηκε 23/08/2012 στις 04:10
πηγή χρήστη

ψήφοι
12

Υπάρχει μια ενημέρωση στην ετικέτα περιλαμβάνονται στο Symfony 2.2 που μπορεί να σας βοηθήσει με αυτό. Εδώ είναι ένα παράδειγμα της νέας ετικέτας: {{ include('FTWGuildBundle:Help:popover.html.twig', {'content':helpContent,'title':helpTitle}) }}

Αυτό μπορεί να είναι ό, τι χρειάζεστε, δεδομένου ότι αποφεύγει να κάνει μια υπο-αίτημα προς έναν ελεγκτή ( renderτο κάνει αυτό) θα είναι καλύτερες επιδόσεις.

Στο παράδειγμά μου, είμαι συμπεριλαμβανομένης της HTML για βοήθεια popover και παρέχοντας τον τίτλο και το περιεχόμενο.

Απαντήθηκε 12/04/2013 στις 21:49
πηγή χρήστη

ψήφοι
0

Για ό, τι αξίζει να σας. Εδώ είναι ένα παράδειγμα για το πώς έχω καθίσταται μπλοκ του περιεχομένου. Αυτό είναι ένα app παρτίδα που στέλνει μηνύματα ηλεκτρονικού ταχυδρομείου, έτσι είναι λίγο διαφορετική από ό, τι του τι προσπαθείτε, αλλά παρά ταύτα μπορεί να είναι χρήσιμη

        $templateContent = $this->getContainer()->get('twig')->loadTemplate('FTWGuildBundle:AuctionNotification:notificationEmail.html.twig');
        $body = $templateContent->renderBlock('body', array('siteDomain' => $siteClient->getSiteDomain(), 'staticContentDomain' => $siteClient->getStaticContentDomain(), 'batch' => $batch->getNotifications(), 'auction_notification_lockout_period' => $this->getContainer()->getParameter('auction_notification_lockout_period')));
        $subject = ($templateContent->hasBlock("subject")
            ? $templateContent->renderBlock("subject", array('batchSize' => $batch->getSize(), 'batch' => $batch))
            : "Auction House Notifications");
Απαντήθηκε 12/04/2013 στις 21:54
πηγή χρήστη

ψήφοι
4

Τώρα, μπορούμε να χρησιμοποιήσουμε με σύνταξη:

{% with {
            'myVar1': myValue1,
            'myVar2': myValue2
        }
%}
        {{ block('toolbar', myTemplate) }}
{% endwith %}

Δέσμευση: https://github.com/twigphp/Twig/commit/02b084e2f5c3119604b1c0da388dd2438a012191

Απαντήθηκε 08/03/2017 στις 08:45
πηγή χρήστη

ψήφοι
0

Καλέστε οποιαδήποτε μέθοδο της κατηγορίας με τις παραμέτρους χωρίς κλειδί

{{ attribute(classname, methodname, [parameter1, parameter2]) }}

Καλέστε οποιαδήποτε μέθοδο της τάξης με παραμέτρους με το κλειδί

{{ attribute(classname, methodname, {"parameter1" : parameter1, "parameter2" : parameter2]) }}

Ανάκτηση ιδιοκτησία της συστοιχίας / αντικείμενο

{{ attribute(array, key) }}

Απαντήθηκε 24/07/2019 στις 14:04
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more