문제

우리는 Zend 라우터를 사용하고 있으며 양식으로 전송되는 매개 변수를 덮어 쓰는 것 같습니다. 컨트롤러에 도착하는 유일한 매개 변수는 URL의 매개 변수입니다.

왜 이런 일이 일어나고 있는지 아는 사람이 있습니까?

다음은 구성 파일입니다.

; Routing config

routes.groups.route = groups/:group/:type/:idPost/:postUrl/:page
routes.groups.defaults.controller = groups
routes.groups.defaults.action = index
routes.groups.defaults.type = main
routes.groups.defaults.idPost = 
routes.groups.defaults.postUrl = 
routes.groups.defaults.page = 1

그리고 양식 :

<form action="<?= $this->_view->baseUrl ?>/groups/<?= $group['groupUrl'] ?>/deletepost/" method="post">
<input type="hidden" name="formUrl" value="<?=$formUrl ?> />
  ...
</form>

제어 장치:

public function deletepostAction() {
    $params = $this->getRequest()->getParams();
    print_r($params);
    die;
}

... 출력 :

Array
(
   [group] => dandy-handwriting
   [type] => deletepost
   [idPost] => 
   [controller] => groups
   [action] => index
   [postUrl] => 
   [idGroup] => 1
   [lang] => en
)

"Formurl"은 누락되었으며 라우터의 매개 변수 만 있습니다.

도움이 되었습니까?

해결책

컨트롤러의 요청-회전을 사용하여 데이터에 액세스 할 수 있습니다.

요청 객체를 가져옵니다. $ request = $ this-> getRequest ();

게시물 데이터 검색 (양식이 게시물을 통해 제출 된 경우) : $ post = $ request-> getPost ();

get data를 검색합니다 (양식을 통해 양식이 제출 된 경우) : $ get = $ request-> getQuery ();

setparam ()을 통해 설정된 순서 사용자 매개 변수에서 매개 변수를 검색하고 매개 변수를 가져옵니다.

GetParams ()로 데이터를 가져 오면 라우터에서 설정 한 매개 변수는 게시물 데이터를 무시합니다.

따라서 양식에서 데이터를 가져 오려면 getPost () 또는 getQuery () 메소드를 사용하십시오.

다른 팁

아마도 양식 데이터를 get으로 보내고 Zend_router를 구성하여 URL을 다시 작성하도록 구성했을 것입니다 (다른 GET 매개 변수를 복용하지 않고).

이 경우 솔루션은 Zend_router의 경로를 게시하거나 변경하여 양식 데이터를 보내는 것입니다.

코드는 정확한 문제가 무엇인지 결정하는 데 도움이됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top