运行查询时输出Htmlspecialchars

时间:2016-01-13 20:06:08

标签: php sql json laravel

我正在使用以下查询创建一个页面数组:

$pages = Page::orderBy('sorting')->get()->toArray();

当我然后json_encode输出时,当其中一个页面标题中有引号时输出已损坏。我该如何防止这种情况?

2 个答案:

答案 0 :(得分:0)

如果你想返回json,你应该使用:

$pages = Page::orderBy('sorting')->get()->toArray();
return response()->json(['pages' => $pages]);

它应该没有任何问题。如果你有,请说明它们是什么。

只有当我的数据库连接非UTF且有一些字符时,我才遇到json的问题。由于json_encode需要数据为UTF-8,因此可能会导致问题

答案 1 :(得分:0)

Laravel确实返回了正确的JSON。似乎javascript需要以奇怪的方式调用对象,其中对象需要放在单引号中:UINestable.init('{ $json) !!}')。因此,当单引号在JSON内时,它就会出错。 Thanx虽然