微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 使用{{}}时的Laravel 5.6 htmlspecialchars

我最近将一个项目从Laravel 5.5升级到5.6,我有一些像之前没有的编码字符.如果我再次降级到Laravel 5.5,保持一切相同(只需降级几个软件包以使它们兼容),字符就会按预期显示.

我查看了文档,并在5.5和5.6中提到了{{}}和{!! !!}:https://laravel.com/docs/5.6/blade#displaying-data

数据库连接是,并且在升级之前,设置为使用utf8mb4作为字符集并使用utf8mb4_unicode_ci作为排序规则.

知道为什么Laravel 5.6会发生这种情况吗?一个(快速)解决方案是用{!!替换{{}} !!}或{{html_entity_decode($text,ENT_QUOTES)}}但我觉得可以做一些更通用的事情.

解决方法:

阅读升级指南:https://laravel.com/docs/5.6/upgrade

您的问题的答案在Blade> HTML实体编码.

在您的app / Providers / AppServiceProvider.PHP中,添加代码Blade :: withoutDoubleEncoding();在启动功能中.这是整个文件

<?PHP

namespace App\Providers;

use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        Blade::withoutDoubleEncoding();
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐