2011-09-09 7 views
6

, 나는 symfony2 액션에/POST이 JSONsymfony2에서 json을 PHP 객체로 변환하는 방법은 무엇입니까? JQuery와 통해

{"indices":[1,2,6]}: 

을 아약스. 지금 당장은 배열에 대해서만 신경을 써야합니다. 따라서 배열을 상당히 쉽게 만들면 [1,2,6]도 게시 할 수 있습니다.

어떻게하면 이것을 PHP 객체로 변환 할 수 있습니까? 어떻게 든


이 작동하지 않습니다 :

/** 
* @Route("/admin/page/applySortIndex", name="page_applysortindex") 
* @Method("post") 
* @Template() 
*/ 
public function applySortIndexAction() 
{ 
    $request = $this->getRequest(); 
    $j = json_decode($request->request->get('json')); 
    $indices = $j->indices; 
    return array('data'=> $indices); 
} 

공지 사항 제공 :에 .../PageController.php 라인 (64)이 아닌 개체의 속성을 얻으려고 노력을 (500 내부 서버 오류)

$ j-> indices에 액세스합니다. 여기서 $ j는 null 인 것으로 보입니다.


포스터 :

$.ajax({ 
     type: 'POST', 
     url: "{{ path('page_applysortindex')}}", 
     data: $.toJSON({indices: newOrder}), 
     success: ... 
+0

나는 위의 JS ... – Raffael

+0

의 이름으로 "JSON"를 사용하지 않은 것 같아요 그래서 나는 데이터를 써야한다 : "data ="+ $ .toJSON ({indices : newOrder}) 그리고 모두 좋다. 아마 이것에 대한 더 좋은 해결책이있을 것입니다. – Jan

+0

아 게시합니다, 당신은이 POST-매개 변수 내가 적극적으로 전혀 이름을 사용하고 있지 않다 – Jan

답변

5

몸의 사용을 통해 전송되는 데이터를 활용하려면 다음

$request = $this->getRequest(); 
$request->getContent(); 

출력을 검사하고 다음에 따라 행동. 그러나 이것은 json을 포함 할 것입니다.

는 컨트롤러 내에서 이름 JSON과 POST-매개 변수를 받고


(. 그래, 그것은 이것이 당신의 JSON로 연결 테스트) :

$request = $this->getRequest(); 
$request->request->get('json'); 

Request-object


$j = json_decode('{"indices":[1,2,6]}'); 

var_dump($j); 

lea DS에 :

object(stdClass)#1 (1) { 
    ["indices"]=> 
    array(3) { 
    [0]=> 
    int(1) 
    [1]=> 
    int(2) 
    [2]=> 
    int(6) 
    } 
} 
+0

고마워요! 상황이 그렇게 쉬운 사람에게 물어볼 수 있다면 쉽게 할 수 있습니다 :) – Jan

+1

Arrgh,하지만 어떻게 요청에서 json에 도착합니까? – Jan

+0

나는 아직도 json에 도착하는 것처럼 보일 수 없다. 문제의 실제 메소드를 보여주기 위해 제 질문을 업데이트했습니다 ... – Jan

관련 문제