如何扩展 zend 表单元素以创建自定义货币字段。
例如:
$amount = new Example_Form_Element_Currency(1234);
输出应该是这样的:$1,234.00
.
我想要一个自定义的货币助手。
如何扩展 zend 表单元素以创建自定义货币字段。
例如:
$amount = new Example_Form_Element_Currency(1234);
输出应该是这样的:$1,234.00
.
我想要一个自定义的货币助手。
听起来您正在寻找应用过滤器。
我认为没有内置的货币过滤器,但是创建一个来运行提交的值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() ) ) );
}
如果你看看我的问题是 i18n。