laravel 和 json 数组

Posted

技术标签:

【中文标题】laravel 和 json 数组【英文标题】:laravel and json array 【发布时间】:2017-04-10 01:25:59 【问题描述】:

我正在使用 laravel 5.3 和 angularjs 我从我的 angularjs 提交 json,如下所示

"grc":"id":1,"floatingGrcs":["days":"10","units":"100","days":"20","units":"200"]

我从我的 laravel 控制器中接受这个数组,如下所示

public function store(Request $request)

   //how to extract $request object in here

我不知道如何在laravel控制器中提取提交的json数组

【问题讨论】:

【参考方案1】:

你可以使用标准的json_decode():

public function store(Request $request)

    $data = json_decode($request->someJson);

您可以通过dd($request->all());查看所有可用数据

【讨论】:

【参考方案2】:

常见的情况是不需要通过 Angular 发布 json 编码的数据。

要使用 Angular 提交内容,您应该使用,例如:

$http.post('api/something', "grc":"id":1,"floatingGrcs": [..])

然后Laravel端就不需要解码json了:

public function store(Request $request)

   $request->all();     // to get all fields
   $request->grc->id;   // to get a specific field

【讨论】:

【参考方案3】:

我得到了以下代码的答案。但我不确定

$params = json_decode(file_get_contents('php://input'), TRUE);

上面这行代码是否安全。

public function store()
    

        $params = json_decode(file_get_contents('php://input'), TRUE);

        foreach ($params as $key => $value) 
        
            if($key == "grc")
            
                $grc_id = $value["id"];
            
            elseif($key == "floatingGrcs")
            
                foreach ($value as $floating) 
                
                    $days = $floating["days"];

                
            

        

【讨论】:

以上是关于laravel 和 json 数组的主要内容,如果未能解决你的问题,请参考以下文章

如何在 laravel 6 中存储和检索嵌套的 JSON 数组

Laravel 5:从 $request 中检索 JSON 数组

如何使用 Guzzle 和 Laravel 从 JSON 响应中提取单个数组值

对包含 JSON 数组的 JSON 字段进行 Laravel 5.4 查询

如何使用 PHP/Laravel 返回 Json 数据数组?

将 JSON 数据从 API 转换为数组并在 Laravel 和 Guzzle HTTP Client 中分别显示?