efrj
(Efrj)
August 13, 2012, 3:24pm
1
Tenho várias tabelas com campos no formato float e quero usar uma função para formatar moedas em várias views da aplicação.
Porém só consigo usar as funções que eu defino no model referente ao controller de determinada view.
Como posso usar uma função em qualquer controller/view da minha aplicação ?
adlersd
(Adlersd)
August 13, 2012, 4:58pm
2
Genésio,
boa tarde.
pra formatar moeda:
Yii::app()->numberFormatter->formatCurrency((double) $data->atributo, 'BRL')
agora pra chamar a mesma função em várias partes, você pode, por exemplo:
criar uma classe de helpers com funções estáticas.
<?php
Class MINHAS_Funcoes {
public static function escreve_nome($nome) {
return $nome;
}
importá-la no main.php do diretório config:
'import'=>array(
// supondo diretório helpers
'application.helpers.*',
),
depois é só utilizar no seu código:
echo MINHAS_Funcoes::escreve_nome("adlersd");
Qualquer dúvida, posta aí.
abraço.
Tenho várias tabelas com campos no formato float e quero usar uma função para formatar moedas em várias views da aplicação.
Porém só consigo usar as funções que eu defino no model referente ao controller de determinada view.
Como posso usar uma função em qualquer controller/view da minha aplicação ?
ao invés de vc tratar isso na view, pq vc não define isso no behaviors do model???
tem uma extensão que trata campos decimais http://www.yiiframework.com/extension/decimali18nbehavior
vc pode utilizá-la p/ servir como base p/ vc criar o tratamento que quiser de acordo com cada tipo de campo (data por exemplo)
dyegonery
(Dyegonr)
August 13, 2012, 7:59pm
4
Você pode também colocar a função no controller base que fica na pasta Components, e chamar ela assim: Controller::funcao()
abraço
Lothor
(Fabiano Lothor)
August 13, 2012, 8:11pm
5
Isso, pode chamar assim também… $this->funcao() , mas esse método deixa o código um tanto desorganizado, pois você vai usar o seu Controller base como um Utils, o ideal é criar Helpers mesmo, onde possas chamar em quaisquer partes do projeto, até porque, as funções do Controller base, não vão poder serem chamadas dentro dos modelos por exemplo.