Удалите непроверенные элементы из запроса с помощью zend_form - PullRequest
1 голос
/ 22 августа 2011

Я использую zend_form для создания формы, которая отображается. Хотя в форме указаны правила проверки правильности, добавление новых элементов в ответ не исключено. Таким образом, требуется дополнительная фильтрация $this->_request->getParams().

Есть ли способ удалить все неподтвержденные данные до достижения действия? Мне известно, что я могу unset() любой иностранец вручную перед обработкой ответа, но я ищу более элегантное решение.

EDIT:

Я хочу получить параметры запроса и поместить их в базу данных, используя Zend_Db_Table_Abstract::insert($this->_request->getParams()). Это работало бы нормально, так как форма проверена и только проверенные элементы формы присутствуют в запросе. Поскольку это не так, по умолчанию я бы отфильтровал элементы перед выполнением вставки.

1 Ответ

1 голос
/ 22 августа 2011

Не проще ли подобрать нужные поля в действии (после проверки их с помощью Zend_Form) и отбросить остальные параметры?

Если в запросе не указано много параметров, это выглядит для меня наиболее безопасным способом ... Вы получите только те параметры, которые действительно ожидаете, и ничего больше.

EDIT:

Если вам нужно получить только допустимые значения с помощью Zend_Form, поможет ли метод getValidValues()? См. http://framework.zend.com/manual/en/zend.form.quickstart.html#zend.form.quickstart.validate. Затем вы можете unset() все параметры, не указанные в этом списке, из запроса. Я не знаю, есть ли способ сделать это более элегантным, чем этот.

...