Zend Framework - Элемент формы - Удалить идентификатор - PullRequest
1 голос
/ 05 марта 2012

Можно ли удалить атрибут 'id', который Zend Framework добавляет к каждому элементу формы по умолчанию?

Я посмотрел документацию, но, похоже, не смог найти ответ на этот довольно прямой вопрос.

Возможное решение

Есть ли более чистый способ сделать это, кроме setOption?

$submit = new Zend_Form_Element_Submit('submit');
$submit->setRequired(FALSE)
       ->setIgnore(TRUE)
       ->setDecorators($this->elementDecorators)
       ->setOptions(array('id' => ''));

1 Ответ

0 голосов
/ 05 марта 2012

Решением будет переопределить Zend_View_Helper_Form с вашим собственным View Helper . Но искренне, не обращайте слишком много внимания на этот атрибут id в вашей форме, вам рано или поздно понадобится этот идентификатор (если вы используете Javascript, например), а прирост производительности (для отображения страницы) слишком мал принимать во внимание. Это даже приведет к потере производительности, так как вы собираетесь переопределить помощника.

Если ваша цель иная, и вы все равно хотите это сделать, вам нужно написать свой собственный помощник вида следующим образом:

class My_View_Helper_Form extends Zend_View_Helper_FormElement
{
    public function form($name, $attribs = null, $content = false)
    {
        $info = $this->_getInfo($name, $content, $attribs);
        extract($info);


        $xhtml = '<form'
               . $this->_htmlAttribs($attribs)
               . '>';

        if (false !== $content) {
            $xhtml .= $content
                   .  '</form>';
        }

        return $xhtml;
    }
}

Наконец, вам просто нужно перегрузить помощник вида по умолчанию с помощью загрузчика плагинов. Прочтите руководство для получения дополнительной информации о загрузчике плагинов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...