استخدام المتغيرات لأسماء الكتل لا يعمل.
{٪ set block_name = "my_block_name"٪}
{٪ block_name٪}
بعض أتش تي أم أل ...
{٪ endblock٪}
لأن block_name
ممثلة كسلسلة 'block_name'
آسف ، أنت تقول أنه لا يمكنك الحصول على كتل ديناميكية مع غصين أو أنني أستخدمها بطريقة خاطئة؟
أنت على حق ، لا توجد أسماء كتلة ديناميكية
لا يمكنك استخدام الكتل الديناميكية. انشر حالة الاستخدام الخاصة بك على القائمة البريدية لمستخدمي Twig.
آسف لفتح قضية باردة ^^. أعتقد أنني قد واجهت حالة استخدام من شأنها أن تستفيد من أسماء الكتل الديناميكية ...
أستخدم Doctrine مع وراثة الجدول الفردي (فئة الملخص الأساسي = مقالة ، والأخبار + الأسئلة الموسعة المقالة).
بعد ذلك ، قمت بإنشاء فئات نموذجية لأتمكن من إنشاء الأخبار والأسئلة الشائعة. لكن جميع النماذج تستخدم نفس قالب الغصين. ثم احتجت إلى تخصيص قالب حقل (مثل article.product) كما هو موضح هنا .
المشكلة هي أن اسم الحقل يتغير حسب النموذج المستخدم. سيكون الاسم إما news_product أو faq_product ، لذلك سيكون من السهل أن أتمكن من تخصيص حقول النموذج الخاصة بي مثل هذا لتجنب التكرار:
{%- block '_'~type~'_product_widget' -%}
...
{% endblock %}
بعد إجراء بعض الأبحاث ، قمت بحل هذا عن طريق فرض بادئة النموذج في فئات نوع النموذج المختلفة باستخدام getBlockPrefix ، بحيث يكون لجميع النماذج نفس أسماء الحقول ، ويمكنني ببساطة تخصيص article_product:
public function getBlockPrefix(){
return 'article';
}
لذلك أردت فقط توثيق حالة الاستخدام هذه والتي قد تساعد شخصًا ما ...
تعتبر أسماء الكتل جزءًا من بنية القالب ، ولذا يجب أن تكون معروفة في وقت الترجمة.
المتغيرات معروفة فقط في وقت التشغيل.
التعليق الأكثر فائدة
تعتبر أسماء الكتل جزءًا من بنية القالب ، ولذا يجب أن تكون معروفة في وقت الترجمة.
المتغيرات معروفة فقط في وقت التشغيل.