【问题标题】:Laravel Response::json failingLaravel 响应::json 失败
【发布时间】: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 个其他结果

【问题讨论】:

    标签: json laravel response


    【解决方案1】:

    它可能是您数据库中的一些非 UTF-8 字符串。

    当Response::json() 尝试运行时 - 由于非 UTF8 而失败。

    您需要循环遍历数组并在所有结果上运行utf8_enconde(),然后再将其传递给Response::json()

    【讨论】:

    • 这会引发错误 => utf8_encode() 期望参数 1 是字符串,给定数组
    • 得到了只能通过引用传递的变量
    • iconv() 期望参数 3 是字符串,给定数组
    • 这是我的帮助....如果我通过 $result[0] ...这是数组中的第一个数组..它可以工作
    • 问题是当我传递一个数组数组时......由于某种原因它不喜欢它
    猜你喜欢
    • 2010-11-07
    • 2017-02-27
    • 2014-04-16
    • 2017-10-23
    • 1970-01-01
    • 2021-06-05
    • 2015-10-30
    • 2014-11-11
    • 2015-05-17
    相关资源
    最近更新 更多