symfony2/twig: Bagaimana cara mensimulasikan slot lama symfony1 di symfony2?

Saya hanya tidak ingin menampilkan form login layout di halaman login utama..

Saya mencoba mengatur variabel di templat anak login ({% set layout_login = false %}) dan memeriksa nilainya di tata letak, tetapi saya juga perlu mengatur variabel di tata letak ({% set layout_login = true %}), dan selalu menangkap nilai set variabel di tata letak (BENAR)....

Dan mencoba juga mengatur variabel di pengontrol, tetapi tidak ada yang seperti isset() di ranting...

Ada ide?


person ziiweb    schedule 12.07.2012    source sumber


Jawaban (2)


Mengapa Anda tidak mendefinisikan blok di tata letak utama Anda saja?

{% block loginForm %}
    <form />
{% endblock %}

Dan muat ulang di template login Anda:

{% block loginForm %}{% endblock %}
person Jakub Zalas    schedule 12.07.2012

Setara dengan isset() didefinisikan.

Saya menulis st seperti ini:

{% if layout_login is not defined %}

    {% if error %}
        <div>{{ error|trans({}, 'FOSUserBundle') }}</div>
    {% endif %}

    <form action="{{ path("fos_user_security_check") }}" method="post">
        <input type="hidden" name="_csrf_token" value="{{ csrf_token }}" />

        <label for="username">{{ 'security.login.username'|trans({}, 'FOSUserBundle') }}</label>
        <input type="text" id="username" name="_username" value="{{ last_username }}" />

        <label for="password">{{ 'security.login.password'|trans({}, 'FOSUserBundle') }}</label>
        <input type="password" id="password" name="_password" />

        <input type="checkbox" id="remember_me" name="_remember_me" value="on" />
        <label for="remember_me">{{ 'security.login.remember_me'|trans({}, 'FOSUserBundle') }}</label>

        <input type="submit" id="_submit" name="_submit" value="{{ 'security.login.submit'|trans({}, 'FOSUserBundle') }}" />
    </form>

{% endif %}
person ziiweb    schedule 12.07.2012