Estou tentando usar a função formatDecimal em uma View e recebo a seguinte Mensagem:
Property "PagamentoController._locale" is not defined.
Estou fazendo a chamada da seguinte forma:
echo CNumberFormatter::formatDecimal(10.99);
Não acredito que eu tenha que criar um metodo publico dentro de cada controle chamdo locale. Alguém sabe onde estou errando?
Obrigado
<?php
$cnf = new CNumberFormatter(Yii::app()->getLocale());
echo $cnf->formatDecimal(10.99);
?>
formatDecimal não é um método de classe, mas sim um método comum, por isso deve-se instanciar CNumberFormatter. O que acho que no PHP isso deveria ser considerado um bug e gerado um exception. (Mas ninguem me escuta. hahaha)
É requerido uma instância do objeto CLocale para instanciar CNumberFormatter, que pode ser obtida a configurada na sua aplicação, usando Yii::app()->getLocale()
Editado (Enviei incompleto, foi mal)
Quando vc usa um método comum como método de classe, a partir de uma segunda classe, o PHP considera este método como pertencente a primeira classe. Sendo a view parte do controller, ele requer uma variável chamada "_locale" no seu controller.