Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用{{}时的Laravel 5.6 htmlspecialchars_Php_Mysql_Laravel_Laravel Blade - Fatal编程技术网

Php 使用{{}时的Laravel 5.6 htmlspecialchars

Php 使用{{}时的Laravel 5.6 htmlspecialchars,php,mysql,laravel,laravel-blade,Php,Mysql,Laravel,Laravel Blade,我最近将一个项目从Laravel5.5升级到了5.6,我有一些编码字符,比如“以前没有过”。如果我再次降级到Laravel5.5,保持一切不变(只需降级两个包以使其兼容),字符将按预期显示 我已经检查了文档,它在5.5和5.6中提到了关于{{}和{!!!!}的相同内容: 升级之前,数据库连接已设置为使用utf8mb4作为字符集,utf8mb4_unicode_ci作为排序规则 你知道为什么这会发生在Laravel 5.6中吗?一个(快速)解决方案是将{{}替换为{!!!!}或{html_enti

我最近将一个项目从Laravel5.5升级到了5.6,我有一些编码字符,比如“以前没有过”。如果我再次降级到Laravel5.5,保持一切不变(只需降级两个包以使其兼容),字符将按预期显示

我已经检查了文档,它在5.5和5.6中提到了关于{{}和{!!!!}的相同内容:

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


你知道为什么这会发生在Laravel 5.6中吗?一个(快速)解决方案是将{{}替换为{!!!!}或{html_entity_decode($text,entu QUOTES)}},但我觉得可以做一些更一般的事情。

请阅读此处的升级指南:

您的问题的答案在
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();
    }
}

谢谢,这已经解决了大多数情况