Symfony - هل من الممكن تعطيل الناتج الذي يهرب لكل وحدة (أو لكل قالب)؟

StackOverflow https://stackoverflow.com/questions/2180644

  •  24-09-2019
  •  | 
  •  

سؤال

أحاول إخراج بعض HTML في قالب XML وطريقة هروب Symfony تعبثها. لذلك حاولت إنشاء نسخة من الإعدادات. هل هناك طريقة سهلة لتغيير إعدادات Escaping_strategy و/أو Escaping_Method لكل وحدة أو حتى لكل قالب؟

هل كانت مفيدة؟

المحلول

بينما يتم تشغيل الهروب من الإخراج ، لا يزال لديك إمكانية الوصول إلى القيمة الخام من خلال $sf_data. على سبيل المثال ، إذا تم تخزين HTML الذي تحاول الإخراج في متغير يسمى HTML في عملك:

$this->html = '<b>My HTML</b>';

يمكنك الحصول على القيمة غير المقيدة مع هذا:

<?php echo $sf_data->getRaw('html') ?>

http://www.symfony-project.org/book/1_0/07-inside-the-view-layer#chapter_07_sub_activate_output_escaping

لا أعتقد أن هناك طريقة لتعطيل هذه الوظيفة على أساس لكل وحدة.

نصائح أخرى

يعمل Getraw فقط إذا تم تمرير المتغير من الإجراء. للمتغير داخل عرض العرض

sfOutputEscaperGetterDecorator::unescape($html)

ما عليك سوى الالتحاق بهذه المشكلة اليوم وأتمكن من حلها عن طريق الإعداد sfConfig::set('sf_escaping_strategy', false) في وحدة التحكم الخاصة بي (إما في preExecute طريقة لجميع الإجراءات في تلك الوحدة أو في إجراء محدد - executeWhatever).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top