在Laravel 5中何处挂钩以更改View输出?

时间:2015-05-20 09:50:55

标签: php laravel response

对于某种输出过滤器,我需要访问最终呈现的输出字符串,其中包括视图数据以及视图文件中的“硬编码”文本。

例如:

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'解决方案..

1 个答案:

答案 0 :(得分:1)

查看 CompilerEngine Illuminate \ View \ Engines \ CompilerEngine )。 您可以使用它来使用get方法获取视图的评估内容。 也许将它与注册的ServiceProvider结合起来操纵视图内容。另请查看 BladeCompiler ,也许您可​​以将它们结合起来。

但是尝试更改硬编码文本似乎有点奇怪。为什么不首先使用变量。我的意思是,如果你想在之后改变它,为什么它会被硬编码?