我几乎解决了这个问题。现在我必须找到一种方法来覆盖默认的刀片转义函数。我认为有一种方法来创建一个类,扩展和覆盖的行为的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)