zendフォーム要素を拡張してカスタマイズされた通貨フィールドを作成する方法。
例えば:
$amount = new Example_Form_Element_Currency(1234);
出力は次のようになります$1,234.00
。
通貨のカスタムヘルパーが欲しいです。
zendフォーム要素を拡張してカスタマイズされた通貨フィールドを作成する方法。
例えば:
$amount = new Example_Form_Element_Currency(1234);
出力は次のようになります$1,234.00
。
通貨のカスタムヘルパーが欲しいです。
現時点では、このようなフィルターも使用していますが、値をコントローラーに返すと、関数がダーティに見えます。私はここでより良い解決策を探しています。
->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が付属しています。
フィルタを適用しようとしているようですね。
通貨フィルターが組み込まれているとは思いませんが、送信された値を実行するためのフィルターを作成することは難しくありませんnumber_format()
。
class My_Filter_Currency implements Zend_Filter_Interface
{
public function filter($value)
{
return '$' . number_format($value, 2);
}
}