如何重写版本5中blade的默认转义功能



我几乎解决了这个问题。现在我必须找到一种方法来覆盖默认的刀片转义函数。我认为有一种方法来创建一个类,扩展和覆盖的行为的BladeCompiler类,这样我可以做这样的东西:

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

如果我能做到这一点,我只需要让laravel使用MyCustomCompiler而不是bladecomcompiler。我该怎么做呢?

你甚至不需要重写编译器,只需要在Service Provider中这样做:

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

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

最新更新