2013-08-20 83 views
0

我對Zend Framework還很陌生,並對一些概念感到困惑。如何從zendframework 1中的帖子地址獲取變量1

我已經構建了一個POST表單並將唯一的Id附加到表單末尾的URL。我現在想在提交表單時收集標識,但我不清楚該怎麼做

我會告訴你要我做:

下面是呈現的形式從我的控制器頁面功能風景。你會注意到,我已經送入參數,形式,返回動作地址與ID

$action = "{$this->view->baseUrl()}/sample-manager/process-price/{$sampleId}"; 
$this->view->Form = $model= $this->_model->createForm($action); 

接收後是下面的函數。不過,我希望收集應該返回後的返回值的Id,但我不知道在哪裏找到它或如何附加它。

public function processPriceAction() 
{ 
    $this->requirePost(); 

    if($this->_model->processTieredPriceForm($this->view->form, $this->getRequest()->getPost())) 
    { 
    $this->_helper->FlashMessenger('Changes saved'); 

    return $this->_redirect("/product-ecommerce/{$this->_model->getProduct()->id}"); 
    } 
    else 
    { 
    return $this->render('index'); 
    } 
} 

總之,當一個帖子被返回時,返回地址是否與Zend Framework中的帖子一起出現?

回答

0

難道你不能提供id到表單的構造中並將其分配給一個隱藏的元素嗎?例如,在你的控制器:

$action = "{$this->view->baseUrl()}/sample-manager/process-price"; 
$this->view->Form = $model= $this->_model->createForm($action, $sampleId); 

在您的表單模型(未提供這裏,所以最好的猜測):

$sampleId = new Zend_Form_Element_Hidden('sampleId'); 
$sampleId->setValue($sampleId); 
$form->addElement($sampleId); 

然後,一旦表單被提交,你應該能夠得到樣品ID在您的控制器中以標準方式:

$sampleId = $this->getParam('sampleId'); 
+0

謝謝蒂姆和阿什利。我很感謝在這個問題上給予的幫助。溫暖的問候安德列亞 – andreea115

0

答案取決於你的路由設置。如果您使用的是默認設置,則在操作名稱之後,默認路由允許附加數據的鍵/值對。所以,你可能有更多的運氣,像這樣的URL:

{$this->view->baseUrl()}/sample-manager/process-price/id/{$sampleId} 

那會把你sampleId在所謂的「身份證」命名參數,你可以在你的控制器行動$this->_getParam('id')訪問。

相關問題