目前我正在尝试在Zend框架中构建一个Web应用程序。
但我无法弄清楚如何在我的系统中管理状态
例如,我在系统中的报价处理状态具有以下状态
Awaiting for Confirmation
Asssigned
In Progress
Completed
Mark As Spam
我将这些值存储在一个名为ProviderQuoteStatus的表中,并在zend_db类中创建了一个名为ProviderQuoteStatus()的函数,并使用该函数在zend form下拉框中生成状态值。
$select = $this->select()->from("providerQuoteStatus",
array('key' => 'providerQuoteStatusId',
'value' => 'providerQuoteStatusName'));
$result = $this->fetchAll($select);
return $result->toArray();
这是我的Zend表单代码
$serviceType = new Application_Model_DbTable_ProviderQuoteStatus();
$serviceTypeValues = $serviceType->getProviderQuoteStatusFormValues();
$dropDownElement = new Zend_Form_Element_Select('providerQuoteStatus');
$dropDownElement->addMultiOptions($serviceTypeValues);
直到这个阶段一切正常。如果Asssigned Stage I中的引用仅希望提供者选择以下选项
Asssigned
In Progress
Completed
如何在Zend表单下拉框中删除“等待确认”和“标记为垃圾邮件”值?
我应该在哪里存储所有这些业务逻辑(例如,如果Assigned Stage中的报价只能有Assigned,In Progress选项等)?在Model DB类中?
提前非常感谢:D
答案 0 :(得分:0)
您可以使用$ form-init()
中的所有可能选项填充select元素,就像您正在做的那样。但是在$form->setDefaults($defaults)
期间修改元素,此时你将知道元素的当前值并确定哪些选项不再合适:如果元素值是“Assigned”,则删除“Awaiting”和“垃圾邮件“选项。