0
如何扩展zend表单元素以创建自定义货币字段。用于自定义货币的Zend表单元素
例如:
$amount = new Example_Form_Element_Currency(1234);
的放出来应该是这样的:$1,234.00
。
我想为货币定制助手。
如何扩展zend表单元素以创建自定义货币字段。用于自定义货币的Zend表单元素
例如:
$amount = new Example_Form_Element_Currency(1234);
的放出来应该是这样的:$1,234.00
。
我想为货币定制助手。
听起来就像你想申请filter。
我不认为有内置的货币过滤器,但创建一个运行number_format()
或类似的提交值并不困难。
class My_Filter_Currency implements Zend_Filter_Interface
{
public function filter($value)
{
return '$' . number_format($value, 2);
}
}
此刻我也在使用这样的过滤器,但是当将值返回给控制器时,我的函数看起来很脏。我在这里寻找更好的解决方案。
->addFilter(
'Callback',
array('callback' => function($value)
{
$value = str_replace(',', '.', $value);
if(is_numeric($value)){
return number_format(
doubleval($value),
2,
',',
'.'
);
}else{
return $value;
}
})
)
......
public function getAmount()
{
return doubleval( str_replace(',', '.', str_replace('.', '', $this->_value1->getValue())));
}
如果你到这里看看我的问题来与国际化。
什么类型的元素?你有没有试过扩展标准文本元素?有什么问题? – Niklas 2011-06-10 16:12:22