如何找到{{}}标签并将其替换为{!!}将Laravel 4.2应用程序升级到5.0后的!!}标签

时间:2016-10-23 18:31:05

标签: laravel laravel-4 laravel-5 phpstorm

我已将我的应用程序从Laravel 4.2升级到Laravel 5.0(前往5.3的第一步: - )

这是相当多的工作,但有一件事让人非常头痛:我过去曾使用Illuminate\Html\HtmlServiceProvider来生成多个HTML标签,如表单,元素和链接。例如:

{{ Form::label('name', 'Land', array('class' => 'col-md-2 control-label')) }}

{{ HTML::link_to_action('GalleryusersController@index', 'Gallery Users', null, array('class' => 'btn btn-large btn-default btn-block btn-success'))) }}

从Laravel 5.0开始,这些链接被转义并且不像过去那样呈现。在5.0中,必须使用{!! !!}标记正确呈现这些链接。

由于安全原因,我不想将我的应用程序中的所有{{ }}更改为{!! !!},我需要一种工具来选择性地搜索和以某种方式递归替换,我可以使用某种方式搜索字符串中的变量并使用替换字符串中变量的内容:{{ HTML::<inner part> }}应替换为{!! HTML::<inner part> !!}

我尝试使用PhpStorm的“替换结构”功能,但我没有按需要使用它。我不确定,如果这个工具可以做我想做的事。

问题: 任何人都可以帮助我使这个PhpStorm功能工作吗?或者有任何人想到如何轻松实现我的目标吗?

更新1 正如Andy所提到的,在版本5.3中,行为类似于4.2,我可以再次使用{{ }}来创建我的链接和表单:-)我还在我的测试环境中发现,行为在版本5.2中发生了变化。 / p>

尽管我希望有人知道我的搜索解决方案并替换问题,因为一旦我需要其他的东西。任何建议都会受到欢迎!

1 个答案:

答案 0 :(得分:1)

您可以使用Replace in Path...对话框(Ctrl+Shift+R)替换PhpStorm,检查正则表达式并使用以下表达式:

找到文字:\{\{ Form::(.+?)\}\}

替换为:\{!! Form::$1!!\}

HTML::