2014-09-06 2 views
0

У меня есть шаблон, который вызывает несколько встроенных макросов, которые я включаю в этот шаблон из нескольких других мест.Blade templates - Включить автоматический переход на лету?

Иногда, мне нужно все макросы, будет называться так:

{{Form :: ярлык ('Foo', 'Foo')}}

Иногда мне нужно их всех можно назвать так:

{{{Form :: ярлык ('Foo', 'Foo')}}}

на данный момент у меня есть два отдельные шаблоны, которые идентичны за исключением дополнительной {} , что означает, что я должен редактировать два файла каждый раз, когда хочу что-то изменить.

Есть ли способ включить или отключить автоматическое экранирование, чтобы я мог использовать один и тот же файл для обеих ситуаций?

Благодаря

ответ

1

Нет, нет особенности Laravel, что позволит вам сделать это - кроме того, он бы, вероятно, плохая идея от обслуживания коды/безопасности аудит точки зрения. Глядя на шаблон через несколько недель и не зная, какие переменные были или не были спасены, было бы безумием.

Если вам нужно сделать это, «Правильный» способ будет состоять из extend Blade с вашей собственной директивой - что-то вроде @escapeIsConfigIsOn, а затем поместите свою логику для того, чтобы избежать содержимого. Функция верхнего уровня e - это то, что использует blade-сервер внутри для экранирования.

#File: login/vendor/laravel/framework/src/Illuminate/Support/helpers.php 
function e($value) 
{ 
    return htmlentities($value, ENT_QUOTES, 'UTF-8', false); 
} 
Смежные вопросы