Zend Router formu dan sonrası değişkenleri yazar

2 Cevap php

Biz Zend Router kullanıyorsanız ve onun formları tarafından gönderilen parametreleri üzerine yazma gibi görünüyor. Denetleyiciye gelmesi sadece parametreler Url gelen params vardır.

Bu neden oluyor biliyor mu?

İşte yapılandırma dosyasıdır:

; 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

Ve form:

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

Denetleyici:

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

Ki ... çıkışlar:

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

"formUrl", yönlendirici onun sadece parametreleri eksik olduğunu unutmayın.

2 Cevap

Verilerinizi erişmek için denetleyicisi istek nesnesini kullanabilirsiniz.

Fetch the request object: $request = $this->getRequest();

Retrieve POST data (if your form is submitted via POST): $post = $request->getPost();

Retrieve GET data (if your form is submitted via GET): $get = $request->getQuery();

Retrieve parameter in the order user parameters set via setParam(), GET parameters and POST parameters: $params = $request->getParams();

Eğer getParams ile veri alıp if () yönlendirici tarafından belirlenen params sizin POST verileri geçersiz kılar.

Yani sadece sizin formdan veri almak getPost () veya GetQuery () yöntemini kullanmak istiyorsanız.

Muhtemelen GET olarak form verileri gönderiyor, ve (diğer almak parametreler almadan) url yeniden yazma Zend_Router yapılandırmış.

Bu durumda, solüsyon ile POST form veri gönderme veya Zend_Router olarak yolları değiştirmektir.

Kodunuzu tam sorunun ne olduğunu belirlemek için yardımcı olacaktır.