如何覆盖laravel 5中刀片的默认转义功能?

How to override default escape function of blade in laravel 5?(如何覆盖laravel 5中刀片的默认转义功能?)
本文介绍了如何覆盖laravel 5中刀片的默认转义功能?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我在这个问题.现在我必须找到一种方法来覆盖默认的刀片转义功能.我认为有一种方法可以创建一个扩展和覆盖 BladeCompiler 类行为的类,这样我就可以做这样的事情:

I almost solved my problem in this question. Now I must find a way to override the default blade escape function. I think there's a way to create a class that extends and override the behavior of BladeCompiler class, this way I could make something like this:

class MyCustomCompiler extends BladeCompiler{
   function compileEscapedEchos($value){
        return parent::compileEscapedEchos(utf8_encode($value));
    }
}

如果我能做到,我只需要让 laravel 使用 MyCustomCompiler 而不是 BladeCompiler.我该怎么做?

If I could do it, I only must make laravel use MyCustomCompiler instead BladeCompiler. How can I do it?

推荐答案

您甚至不必重写编译器,只需在服务提供者中执行此操作:

You don't even have to override the compiler, just do this in a Service Provider:

Blade::setEchoFormat('e(utf8_encode(%s))');

这将改变 {{ ... }} 的编译方式.默认格式为e(%s).

This will change how {{ ... }} is compiled. The default format is e(%s).

这篇关于如何覆盖laravel 5中刀片的默认转义功能?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

In PHP how can you clear a WSDL cache?(在 PHP 中如何清除 WSDL 缓存?)
failed to open stream: HTTP wrapper does not support writeable connections(无法打开流:HTTP 包装器不支持可写连接)
Stop caching for PHP 5.5.3 in MAMP(在 MAMP 中停止缓存 PHP 5.5.3)
Caching HTTP responses when they are dynamically created by PHP(缓存由 PHP 动态创建的 HTTP 响应)
Memcached vs APC which one should I choose?(Memcached 与 APC 我应该选择哪一个?)
What is causing quot;Unable to allocate memory for poolquot; in PHP?(是什么导致“无法为池分配内存?在 PHP 中?)