Twig: Nama blok dinamis

Dibuat pada 12 Apr 2011  ·  7Komentar  ·  Sumber: twigphp/Twig

Menggunakan vars untuk nama blok tidak berfungsi.

{% set block_name = "my_block_name" %}

{% block block_name %}
beberapa html...
{% blok akhir %}

Komentar yang paling membantu

Nama blok adalah bagian dari struktur template, dan karenanya harus diketahui pada waktu kompilasi.
Variabel hanya diketahui saat runtime.

Semua 7 komentar

karena block_name direpresentasikan sebagai string 'block_name'

Maaf, Anda mengatakan bahwa Anda tidak dapat memiliki blok dinamis dengan ranting atau saya menggunakannya dengan cara yang salah ?

Anda benar, tidak ada nama blok dinamis

Anda tidak dapat menggunakan blok dinamis. Posting kasus penggunaan Anda di milis pengguna Twig.

Maaf untuk membuka kasus dingin ^^. Saya pikir saya mungkin telah menemukan kasus penggunaan yang akan mendapat manfaat dari nama blok dinamis ...

Saya menggunakan Doctrine dengan pewarisan tabel tunggal (kelas abstrak dasar = Artikel, dan Berita + Faq memperluas Artikel).

Kemudian, saya telah membuat kelas formulir untuk dapat membuat Berita dan Faq. Tetapi semua formulir menggunakan templat ranting yang sama. Kemudian saya perlu menyesuaikan template bidang (katakanlah article.product) seperti yang dijelaskan di sini .

Masalahnya, nama field berubah-ubah tergantung pada form yang digunakan. Nama akan berupa news_product atau faq_product, jadi akan berguna untuk dapat menyesuaikan bidang formulir saya seperti ini untuk menghindari pengulangan:

{%- block '_'~type~'_product_widget' -%} ... {% endblock %}

Setelah beberapa penelitian, saya memecahkan ini dengan memaksa awalan formulir di kelas tipe formulir yang berbeda menggunakan getBlockPrefix, sehingga semua formulir akan memiliki nama bidang yang sama, dan saya cukup menyesuaikan article_product:

public function getBlockPrefix(){ return 'article'; }

Jadi hanya ingin mendokumentasikan kasus penggunaan ini yang dapat membantu seseorang ...

Nama blok adalah bagian dari struktur template, dan karenanya harus diketahui pada waktu kompilasi.
Variabel hanya diketahui saat runtime.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat