Laravel 响应::json 失败
Posted
技术标签:
【中文标题】Laravel 响应::json 失败【英文标题】:Laravel Response::json failing 【发布时间】:2014-07-01 23:35:33 【问题描述】:我正在尝试通过将数组传递给 Response::json() 从服务器发送 JSON 响应,但我不断在 vendor\laravel\ ... \jsonReponse.php 中收到 UTF-8 Invalid Argument 49
public function getAllForInbox()
$conn = SqlServerPdo::connect();
$query = "Some Query";
$statement = $conn->prepare($query);
$success = $statement->execute();
$result = $statement->fetchAll(PDO::FETCH_ASSOC);
SqlServerPdo::disconnect();
return Response::json($result);
其他一切正常。我在 $result 上做了一个 var_dump。 是一个包含数据数组的数组。每个数组都是结果中的一行。
问题是......它工作得很好......然后我运行了 Composer Update......现在它不再工作了 oO......这可能是供应商/laravel 文件夹上的一些错误吗? ??
事实上,我有一个本地开发服务器正在运行,它工作得很好,当我上传到当前托管应用程序的服务器时,它不会......它是 PHP 吗???
这是示例 $result var dump
array(10)
[0]=>
array(6)
["numint"]=>
string(1) "1"
["name"]=>
string(15) "Sistel Helpdesk"
["priority"]=>
string(1) "0"
["assignation"]=>
string(0) ""
["tickets_open"]=>
string(1) "1"
["tickets_with_conv"]=>
string(1) "0"
...
还有 9 个其他结果
【问题讨论】:
【参考方案1】:它可能是您数据库中的一些非 UTF-8 字符串。
当Response::json()
尝试运行时 - 由于非 UTF8 而失败。
您需要循环遍历数组并在所有结果上运行utf8_enconde()
,然后再将其传递给Response::json()
【讨论】:
这会引发错误 => utf8_encode() 期望参数 1 是字符串,给定数组 得到了只能通过引用传递的变量 iconv() 期望参数 3 是字符串,给定数组 这是我的帮助....如果我通过 $result[0] ...这是数组中的第一个数组..它可以工作 问题是当我传递一个数组数组时......由于某种原因它不喜欢它以上是关于Laravel 响应::json 失败的主要内容,如果未能解决你的问题,请参考以下文章