对于某种输出过滤器,我需要访问最终呈现的输出字符串,其中包括视图数据以及视图文件中的“硬编码”文本。
例如:
welcome.blade.php
<div>This is bad and you are {{ $variable }}</div>
控制器,作曲家或附加变量的其他内容
view()->with('variable', 'bad')
最终输出为
<div>This is bad and you are bad</div>
但现在让我们假装我们想用'好'替换'坏'的每个实例,所以我们得到:
<div>This is good and you are good</div>
很好地支持更改视图数据,但是如何将一些更改逻辑应用于完全呈现的内容? (因为我认为这是改变视图文件本身内容的唯一方法吗?)
注意:当且仅当可能时,我更喜欢'hook-in'解决方案而不是'extend-core'解决方案..
答案 0 :(得分:1)
查看 CompilerEngine ( Illuminate \ View \ Engines \ CompilerEngine )。 您可以使用它来使用get方法获取视图的评估内容。 也许将它与注册的ServiceProvider结合起来操纵视图内容。另请查看 BladeCompiler ,也许您可以将它们结合起来。
但是尝试更改硬编码文本似乎有点奇怪。为什么不首先使用变量。我的意思是,如果你想在之后改变它,为什么它会被硬编码?