【问题标题】:Laravel JSON response changes value of associative array keyLaravel JSON 响应更改关联数组键的值
【发布时间】:2019-04-07 23:16:42
【问题描述】:

我为data 定义了一个响应格式,Laravel 应该在前端返回以下代码:

$result1=$spaceRole->pluck('role','space.id')->all();
$resultToReturn=[];
foreach($result1 as $key=>$value){
    $resultToReturn[$key]=array($value);
}
 return $resultToReturn;

并且代码按预期给了我以下结果:

 [                       
   850 => [              
     "AUTHORS",          
   ],                    
   766 => [              
     "ADMINISTRATORS",   
   ],                    
   844 => [              
     "ADMINISTRATORS",   
   ],                    
   0 => [                
     "ADMINISTRATORS",   
   ],                    
 ] 

我想在我的json response 中保持相同的格式。但是我以 JSON 格式返回的数据,格式更改如下:

0: ["AUTHORS"]
1: ["ADMINISTRATORS"]
2: ["ADMINISTRATORS"]
3: ["ADMINISTRATORS"]

现在索引是0,1,2,3850,844,0 and 766 去了哪里?我想使用它们而不是那些索引? 谢谢

【问题讨论】:

    标签: laravel laravel-5


    【解决方案1】:

    我终于解决了这个问题。用对象类型转换我的reponse 是解决方案。

    return (object)$resultToReturn; 保持我的格式

    【讨论】:

      【解决方案2】:

      试试这个:

      $result1=$spaceRole->pluck('role','space.id')->all(); 
      $resultToReturn=[]; foreach($result1 as $key=>$value){ 
          $resultToReturn[$key]=array($value); 
      } 
      return json_encode($resultToReturn);
      

      【讨论】:

      • 我知道,但我不想发送 json 字符串然后调用 JSON.parse()。无法从PHP 在后端?
      • 调用 Json.parse 是必需的。
      • 所以你想说在backend 端完成工作是不可能的?而这个问题只有 integer 键才会出现。使用字符串没有问题
      • 在 php 中,如果你通过 api 发送任何请求,你必须对其进行编码是标准做法。
      猜你喜欢
      • 1970-01-01
      • 2017-11-02
      • 2019-05-11
      • 1970-01-01
      • 2019-08-11
      • 1970-01-01
      • 2012-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多