【问题标题】:Setting Value on PHP Zend Form在 PHP Zend 表单上设置值
【发布时间】:2023-04-03 18:25:01
【问题描述】:

我目前有一个表格可以让您创建一个家庭。

FamilyForm.php

$description = new Textarea(self::KEY_FAMILY_DESCRIPTION);
$description->setAttribute("id", self::KEY_FAMILY_DESCRIPTION);
$description->setLabel("Description");
$this->add($description);    

$status = new Hidden(self::KEY_FAMILY_STATUS);
$status->setAttribute("id", self::KEY_FAMILY_STATUS); 
$this->add($status); 

$save = new Button(self::KEY_SAVE_BTN);
$save->setAttributes(array("id", self::KEY_SAVE_BTN));
$save->setLabel("Save");
$save->setValue("Save");
$this->add($save);

创建.phtml

<?php echo ctrlGroup($this, ProjectFamilyForm::KEY_FAMILY_DESCRIPTION, !($this->admin)); ?>
<?php echo ctrlGroup($this, ProjectFamilyForm::KEY_FAMILY_STATUS, !($this->admin)); ?>
<div class="form-actions">
      <?php $save = $this->form->get(ProjectFamilyForm::KEY_SAVE_BTN); ?>
      <?php $save->setAttribute("class", "btn btn-primary"); ?>
      <?php echo $this->formSubmit($save); ?>

      <a class="btn" href="<?php echo $this->url('home'); ?>">Cancel</a>
</div>

这很有效,允许我在创建时输入家庭的描述和状态。但是,每次创建家庭时,status 应该是 "active"。但是,setValue() 方法似乎不起作用。

【问题讨论】:

  • “但我得到一个错误” - 究竟是什么?
  • @A-2-A 是的,在我的复制和粘贴中错过了它-_-
  • @Fred-ii- Call to a member function setAttribute() on a non-object
  • @A-2-A 但有什么办法可以从表格中做到吗?
  • Hm.... 不确定,但您有复数形式的 setAttributes 和单数形式的 setAttribute相关?。或者,它们是 2 个单独的方法吗?

标签: php forms zend-framework default-value


【解决方案1】:

我不是ZEND 的专家,但有一些方法可以做到这一点:-

  1. 最可取的方式:- 让你的数据库表字段set 类型并将默认值设置为active

  2. 使用预定义的active 值创建一个隐藏字段。

请查看此链接以获取帮助:- http://forums.zend.com/viewtopic.php?t=2079

【讨论】:

  • 我最终使用了隐藏字段并使其正常工作。谢谢!
猜你喜欢
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-21
  • 1970-01-01
相关资源
最近更新 更多