Я новорожденный, чтобы Zend. Проходил через документацию Zend Form и не мог понять одну вещь. у меня есть проект на Zend с Oracle, поэтому моя жизнь уже испорчена ;-). Я застрял в нескольких основных проблем класса Zend_Form. Проблема в том, что когда мы настраиваем форму в действии, и она публикуется только для этого действия, очевидно, создается новый объект формы, и мое опубликованное значение исчезает, как дым. Так как сохранить их в живых. Я получил замену $this->getrequest()->getparams()
, но в документации Zend и везде, где я видел примеры, все они имеют одинаковый поток. Они не используют getparams()
в качестве опции. Позвольте мне взять это через код, чтобы получить очень ясное представление.
public function indexAction()
{
$this->view->title = 'Welcome to CashTray '; // passing title to view
// creating cashtray mapper object
$cashTrayMapper = new Application_Model_CashtrayMapper();
// search form object
/* It will reset the object, a obvious thing*/
$searchForm = new Application_Form_Cashtray_Search(); // creating search form object
if ($this->getRequest()->isPost()) // post request found
{
var_dump($searchForm->getValues(), $this->getRequest()->getparams());die;
}
else
{
$this->view->form = $searchForm;
// retrieving cashtray list
$this->view->entries = $cashTrayMapper->fetchAll(); // passing form to view
}
}
ВЫВОД:
array(2) { ["client"]=> string(0) "" ["offset"]=> string(0) "" }
array(6) { ["controller"]=> string(8) "cashtray" ["action"]=> string(5) "index" ["module"]=> string(7) "default" ["client"]=> string(4) "1001" ["offset"]=> string(3) "214" ["submit"]=> string(6) "Search" }
Теперь мы можем видеть, что форма отправлена, значения есть, но почему я не могу получить ее через $searchForm->getValues();
В примерах они имеют $form
вместо $searchForm
, что, как я думаю, не должно быть проблемой .