【问题标题】:Laravel 5.3 to 5.4 upgrade issue since Blade::setRawTags(), Blade::setContentTags() and Blade::setEscapedContentTags() were removedLaravel 5.3 到 5.4 升级问题,因为 Blade::setRawTags()、Blade::setContentTags() 和 Blade::setEscapedContentTags() 被删除
【发布时间】:2018-02-13 15:32:37
【问题描述】:

我正在尝试将我的应用从 laravel 5.3 升级到 5.4。 不幸的是,根据 laravel api 文档 (https://laravel.com/api/master/Illuminate/View/Compilers/BladeCompiler.html),似乎功能 Blade::setRawTags()、Blade::setContentTags() 和 Blade::setEscapedContentTags() 已被删除。 这对我来说是个问题,因为我必须使用这些函数来使我的 laravel 4.2 语法与 laravel 5 兼容(这也是从 4.​​2 到 5.0 的升级指南中描述的方式)。 这会阻止 composer install/composer update 运行,因为它将返回,它找不到该函数。 此外,我无法找出它们被删除的原因或解决此问题的方法。 你们有没有人知道任何替代方法或使这项工作的方法,而不改变我的整个语法?

提前致谢

【问题讨论】:

  • 你最好的办法可能是扩展 BladeCompiler 类,根据需要覆盖标签,然后在bootstrap/app.php 中绑定类/接口。您需要将标签从/更改为什么?
  • 感谢您的回答。您的解决方案听起来很合理。我需要即从 {!! 更改标签!!} 到 {{ }}。但是,我决定现在更改代码中各处的语法,以便应用程序符合最新标准,并且不会随处使用快速修复。

标签: php laravel upgrade


【解决方案1】:

在您的 App/Providers/AppServiceProvider.php 中更改:

public function register(){
       \Blade::setRawTags('{{', '}}');
        \Blade::setContentTags('{{{', '}}}');
        \Blade::setEscapedContentTags('{{{', '}}}');
}

public function register(){
//empty
}

然后尝试再次运行 composer update。

【讨论】:

    猜你喜欢
    • 2019-05-06
    • 1970-01-01
    • 2017-03-26
    • 2015-07-10
    • 2017-04-14
    • 1970-01-01
    • 1970-01-01
    • 2018-02-21
    • 2020-06-27
    相关资源
    最近更新 更多