Laravel集合重音错误

时间:2017-10-12 20:29:51

标签: php sql-server json laravel

我的程序(WebAPI)在Laravel中出现了很大的问题。

首先,这是软件的配置:

  • Laravel Framework 5.4.30

  • SQL Server 2012

我试图返回表格“学生”的Json,但当字段“name”包含重音时,这个Json返回错误,例如'José'。当它不包含重音时,Json返回所有行,例如'Maria'

当我在名字字段的值之前意识到一个字母时,我看到了这个集合。

class StudentsController extends Controller
{
    public function index(Request $request){

        $class = $request['class'];

        $return = DB::table('students')
        ->where("class", $class)
        ->get();
        
        dd($return);
        
        return json_encode($return);
        
    }

}

此结果没有强调:

Collection {#289
  #items: array:1 [
    0 => {#284
      +"id": "2"
      +"name": "Maria"
      +"class": "B"
    }
  ]
}

转换为Json:return json_encode($return);,返回:

[{"id":"2","name":"Maria","class":"B"}]

但是..当结果有一个重点:

Collection {#289
  #items: array:1 [
    0 => {#284
      +"id": "1"
      +"name": b"José"
      +"class": "A"
    }
  ]
}

在值之前修复字母“b”

转换为Json(return json_encode($return);),返回: Json whith problem

这是文件“/config/database.php”上的连接配置

'sqlsrv' => [
            'driver' => 'sqlsrv',
            'host' => env('DB_HOST'),
            'port' => env('DB_PORT'),
            'database' => env('DB_DATABASE'),
            'username' => env('DB_USERNAME'),
            'password' => env('DB_PASSWORD'),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
        ]

帮助我!!!

1 个答案:

答案 0 :(得分:0)

有一种简单的方法可以实现此目的,而不是返回json_encode尝试返回集合。

class StudentsController extends Controller
{
   public function index(Request $request){

    $class = $request['class'];

    $return = DB::table('students')
    ->where("class", $class)
    ->get();


    return $return;

   }
}

它将按预期返回结果。