Zend Form 元素注释

发布于 12-04 05:24 字数 449 浏览 1 评论 0原文

我已经为 html 内容构建了一个 zend 表单元素(一般注释)。

class Sistema_Form_Note extends Zend_Form_Element_Xhtml {

    public $helper = 'formNote';

    public function isValid($value){
        return true;
    }

}

它工作正常,但它作为一个字段,当我在数据库中插入帖子数据时,会出现索引注释元素。

POST array('name' => 'John'
  'note1' => ...); 

如果不使用控制器上的 removeElement() 方法,如何删除它?有什么方法可以告诉类它不应该是“数据库字段”吗?

谢谢

I have built a zend form element for html content (general notes).

class Sistema_Form_Note extends Zend_Form_Element_Xhtml {

    public $helper = 'formNote';

    public function isValid($value){
        return true;
    }

}

It's working fine however it goes as a field and when I go to insert the post data on my database, the index note element appears.

POST array('name' => 'John'
  'note1' => ...); 

How could I remove it without using the removeElement() method on the controller? Is there any way to tell on the class it shouldn't be a "db field"?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

秋凉2024-12-11 05:24:40

我发现,看看如何删除提交按钮,可以解决覆盖构造方法并将忽略选项传递为 true 的问题。

class Sistema_Form_Note extends Zend_Form_Element_Xhtml {

    public $helper = 'formNote';

    public function __construct($spec, $options = null)
    {
       if (is_string($spec) && ((null !== $options) && is_string($options))) {
            $options = array('label' => $options);
       }

       if (!isset($options['ignore'])) {
            $options['ignore'] = true;
       }

       parent::__construct($spec, $options);
    }

    public function isValid($value){
       return true;
    }

}

I figured out, looking how submit button is removed, It can be solved overring contruct method and passing ignore option as true.

class Sistema_Form_Note extends Zend_Form_Element_Xhtml {

    public $helper = 'formNote';

    public function __construct($spec, $options = null)
    {
       if (is_string($spec) && ((null !== $options) && is_string($options))) {
            $options = array('label' => $options);
       }

       if (!isset($options['ignore'])) {
            $options['ignore'] = true;
       }

       parent::__construct($spec, $options);
    }

    public function isValid($value){
       return true;
    }

}
爱的那么颓废2024-12-11 05:24:40

我创建了一个具有相同要求的类似元素。我知道您已经回答了这个问题,但我的解决方案包含一个解决方案,可以防止该值被发布数据覆盖(如果您使用 $_value 属性)。

class My_Form_Element_Note extends Zend_Form_Element_Xhtml
{
    public $helper = 'formNote';

    protected $_ignore = true;

    public function setValue($value)
    {
        if (null === $this->_value) {
            parent::setValue($value);
        }
        return $this;
    }
}

I've created a similar element with the same requirements. I know you've already answered this but mine contains a solution that prevents the value from being overridden by post data (if you use the $_value property).

class My_Form_Element_Note extends Zend_Form_Element_Xhtml
{
    public $helper = 'formNote';

    protected $_ignore = true;

    public function setValue($value)
    {
        if (null === $this->_value) {
            parent::setValue($value);
        }
        return $this;
    }
}
国际总奸2024-12-11 05:24:40

对我来说它有帮助:

class App_Form_Element_Note extends Zend_Form_Element_Xhtml
{

public $helper = 'formHtml';

public function __construct($spec, $options = null) {

     parent::__construct($spec, $options);
     $this->setIgnore(true);
}

public function isValid($value){
      return true;
}

}

'IsValid' 函数的重写使得验证器动作时出现注释。

For me just it has helped:

class App_Form_Element_Note extends Zend_Form_Element_Xhtml
{

public $helper = 'formHtml';

public function __construct($spec, $options = null) {

     parent::__construct($spec, $options);
     $this->setIgnore(true);
}

public function isValid($value){
      return true;
}

}

The overwride of 'IsValid' function made the note appears when the validator acts.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文