Re: [CakePHP-Tuga] Intercionalizar mensagens do model

3 views
Skip to first unread message
Message has been deleted

Joao Jose Pedrini

unread,
Nov 28, 2009, 6:18:37 PM11/28/09
to cake-...@googlegroups.com
John,

Vale lembrar que o PHP não executa funções em definição de classes, então você teria, ou colocar no constructor, ou colocar em funções de callback ou mesmo antes do método de save. 

Uma dica pro pessoal, o CakePHP coloca as definições como $validate na definição da Classe por simples comodidade, você pode setar essas variáveis na hora da execução da função. Um exemplo legal disso seria os métodos de salvar novos usuários e editar, normalmente você não valida a igualdade da repetição da senha em métodos de edição, portanto você poderia colocar somente quando fosse salvar o usuário.

Abraços 
--
Joao Jose Pedrini
joaojos...@gmail.com

Julio Protzek

unread,
Nov 30, 2009, 12:25:33 PM11/30/09
to cake-...@googlegroups.com
http://book.cakephp.org/view/693/__

Essa função tem um segundo parâmetro para essas situações =)

2009/11/26 John-Henrique <sup...@vibemidia.com>

Estou fazendo a internacionalização de um sistema e eis que me surge
um imprevisto, como adicionar o método mágico dentro do model?

   var $validate = array(
       'nome' => array(
           'alphanumeric' => array(
               'rule' => 'notempty',
               'message' => __( 'Only alphabets and numbers allowed',
true )
           )
);

Desta forma dá erro, não vai funcionar nunca, alguma sugestão?


Josenivaldo Benito Junior

unread,
Nov 30, 2009, 3:24:01 PM11/30/09
to cake-...@googlegroups.com
Oi John,

Vi isso em algum artigo ou mensagem:

No app_model.php:

function __construct($id = false, $table = null, $ds = null) {
$this->_traduzirMensagens();
parent::__construct($id, $table, $ds);
} // End construct

function _traduzirMensagens() {

} // End construct

Em cada model:

	function _traduzirMensagens() {
$this->validate['campo']['regra_nome']['message'] = __('Please, enter your callsign', true);
$this->validate['campo2']['numeric']['message'] = __('blablablablabla', true);
...
}

Espero que ajude.

73 ES DX PU2LBD
Josenivaldo Benito Junior
Social me Linkedin Facebook Flickr Picasa Google Reader

Gabriel Gilini

unread,
Nov 30, 2009, 5:30:08 PM11/30/09
to cake-...@googlegroups.com
Ah, sim, um parâmetro de return setado para false vai permitir que
você chame uma função na definição de atributos de uma classe.

2009/11/30 Julio Protzek <juliop...@gmail.com>:
--
Gabriel Gilini

www.usosim.com.br
gab...@usosim.com.br
Reply all
Reply to author
Forward
0 new messages