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 查询