2013-01-20 2 views
-1

EXTJS 4 휴식 프록시에서 Zend 2 휴식 컨트롤러에 데이터를 게시하고 싶습니다. 하지만 방화범이 끌리는 것을 조사해 보면 게시물 데이터가 있다는 것을 알았지 만 그 데이터를 가져올 수 없습니다. 내 게시물 데이터를 사용하여 내 방법에서 사용하려면 어떻게해야합니까? 어디서 잘못되고 있는지 파악할 수 없습니다. 누군가가 나머지 Extjs 4 프록시 메소드를 Zend에 게시하는 단계가 있습니까?extjs 4 휴식 프록시 및 zend 2 휴식 컨트롤러

+0

이 어떻게 Z2 응용 프로그램 포맷 할 데이터를 기대하고있다을, 어떻게 ExtJS로 그것을 포맷하는? ExtJS 요청이 정상적으로 처리 된 것처럼 들리므로 내 초기 반응은 Ext2S가 보내는 형식으로 요청을 수락하도록 Z2 앱을 구성하지 않았기 때문입니다. 마음에 드는 스 니펫 (snippet)을 요청하고 Z2 코드에서 인바운드 요청을 어떻게 넘겨주고 있는지 알려주는 비트를 공유하십시오. – existdissolve

+0

적어도 (적어도) 서버 코드 – shampoo

답변

0

는 HTTP 요청 본문에서 JSON을로드하는 PHP의 표준 방법은 내가 Zend2이 그 일을 자신의 방법을 가지고 있는지 모르는

$some_json = file_get_contents('php://input'); 
$some_object = json_decode($some_json); 

을 사용하는 것입니다.

-1

나는 정확히 같은 문제가 있습니다. 이제는 Zend Studio 10이 매개 변수를 받고 경로를 만드는 비주얼 편집기에서 REST 서비스를 구성하기위한 새로운 기능을 가지고 있기 때문에 이전 응답이 효과가없는 이유가 있습니다. 이 서비스 디자이너는 실제로 Restful 서비스의 POST 액션에 대한 매개 변수 폼을 받아들이지 만 ExtJS에서 보낸 JSon을 무시합니다. Zend Studio 10의 통합 GUI를 사용하여 서비스를 테스트하면 완벽하게 작동하며 JSON은 ExtJS의 JSon과 100 % 동일합니다 (실제로이 지점으로 이동하기 위해 일부 데이터 변환을 수행함). 작동하지 않습니다.

실제 문제는 개발자가이 JSon을 역 직렬화하기위한 코드를 추상화하는 프레임 워크 자체에서 예상되는 JSon보다 ExtJS 요청에서 다른 POST 메서드 내에 '무언가'가 있다는 것입니다.

실제 질문은 ExtJS가 POST 본문에서 다른 방식으로 보내는 것을 기대하는 젠드 서버 게이트웨이 라이브러리는 무엇입니까? 수천명의 전문가가 체크 아웃하여 정확한 답을 얻을 수 있다면 정말 감사하겠습니다. 이 질문에 답할 수있는 사람은 Zend Studio 10의 평가판을 다운로드하거나 ZS10과 함께 제공되는 Visual Service Tool이 어떻게 작동하는지 직접 확인해야합니다. 이 같은 JSON을

{"data": 
{"IdCurso":"0","Nombre":"NodeJS","IdEstadoCurso":"1", 
    "IdTipoPeriodo":"1","CantPeriodo":"1","CantAsignatura":"1","IdPlantel":"1"} 
} 

그리고 젠드 GUI 서비스를 테스트하기 위해, 생산 (및 서비스가 허용) : 나는 ExtJS4이 같이 키우면 JSON을 생산하고 지금까지 발견

{ 
    'data' : '{"Nombre":"NodeJS","IdEstadoCurso":"1","IdTipoPeriodo":"1","CantPeriodo":"1","CantAsignatura":"1","IdPlantel":"1","IdCurso":"0"}' 
} 

로 당신은 데이터가 작은 따옴표로 묶여 있음을 볼 수 있으며, 내용은 Zend Framework가 아무런 문제없이 그것을 소비 할 수있는 내용이기도합니다. ExtJS는 큰 따옴표를 사용하고 데이터 패키지 자체의 내용을 인용하지 않습니다.

이것은 실제로 작동하는 패치입니다. 누군가가 더 나은 것을 찾으면 결정적인 해결책이 아닙니다.

$data = json_decode($this->getRequest()->getContent()); 

당신은 Afer 즉 추가해야 할 수 있습니다 :

$data = (array) $data; 

을 그 후, 당신의 코드를 작성 유지

(POST)() 메서드 추가 기능의 첫 번째 명령으로 이것을 시도 매개 변수가 실제로 작동하면 $ data 변수가 정상적으로 수행됩니다.

+0

이 질문은 내 사례가이 질문과 동일하다는 점에서 실제로 마찬가지입니다. 실제로 나는 본래의 질문에 대한 더 많은 정보와 통찰력을 제공해보다 정확하고 덜 모호한 답변을 제공합니다. 나는 해결책을 찾아서 여기에 올리려고하고있다. –

+0

고마워, 방금 했어. 내 게시물을 편집 할 예정이므로이 문제의 답에 도움이됩니다. –

0

ExtJS는 URL, 예컨대 : http://myhost.com/?page=2&sort=myfieldsort, page, filter 등 같은 PARAMS을 보낼 수 있습니다.당신은 단순히 당신의 RESTController 액션에서 검색어 매개 변수를 차단하기 위해 필요한이 경우

:

  • GET :

    $page = $this->params()->fromQuery('page'); 
    $sort = $this->params()->fromQuery('sort'); 
    

    데이터 전송 ZF2 REST 컨트롤러로 사용중인 HTTP 방법에 따라 달라집니다 PUT, DELETE$id 인수를받습니다.

  • POST 새 레코드를 만드는 데 사용되며 $ data 인수를받습니다. 당신이 여기에서보고 할 수 있습니다 자세한 내용은

:

http://framework.zend.com/manual/current/en/modules/zend.mvc.controllers.html#the-abstractrestfulcontroller

당신이 관심이 있다면

, 나는 Sencha 내 REST 프록시를 개발하고, 나는 ExtJSSencha Touch 프레임 워크와 함께 테스트 한 페이지 매김, 원격 필터, 원격 정렬 등을 지원합니다.

젠드 프레임 워크 2로 개발되었으며 동일한 설치에서 다른 DB 유형을 지원할 수 있습니다. 살펴 유무 :

http://apiskeleton.asaconsult.com/