2016-11-25 122 views
2

我使用laravel 5.3和angularjs 我提交JSON從我angularjs像下面laravel和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 
} 

我不t知道如何在laravel控制器中提取提交的json數組。

回答

2

您可以使用標準json_decode()

public function store(Request $request) 
{ 
    $data = json_decode($request->someJson); 
} 

你可以看一下所有可用數據dd($request->all());

2

常見的情況是,有沒有必要通過角後JSON編碼的數據。

要提交一些與角度,你應該使用,例如:

$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 
} 
0

我得到以下回答碼。但我不確定

$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"]; 

       } 
      } 

     }