我的程序(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' => '',
]
帮助我!!!
答案 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;
}
}
它将按预期返回结果。