Yii Framework Forum: Tratamento de mensagens do banco de dados - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Tratamento de mensagens do banco de dados Rate Topic: -----

#1 User is offline   Daniel Augusto Bastos 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 347
  • Joined: 25-May 09
  • Location:Rio de Janeiro - Brasil

Posted 15 June 2009 - 12:41 PM

Galera, to tentando fazer uma pequena aplicação utilizando Yii, mas cheguei num ponto que to meio perdido no que fazer, e, se possível, gostaria da opinião de vcs.

Tenho um model gerado pelo yiic, com base MySQL, onde no banco está definido uma chave única para um determinado campo.

esta tabela é bem simples. Segue a estrutura dela abaixo.

CREATE TABLE IF NOT EXISTS `pessoas` (
  `id` char(32) NOT NULL DEFAULT '',
  `nome` varchar(50) NOT NULL,
  `telefone` varchar(20) DEFAULT NULL,
  `email` varchar(150) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `nome` (`nome`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Pois bem. Ela tem definido que o campo Nome não pode ser nulo.
Até ai tudo blz, mas na hora que eu vou salvar na tabela, tendo o valor duplicado para testes, o Yii exibe uma página de erro.

Gostaria de tratar esta mensagem de erro, para que o erro seja traduzido e apresentado ao usuário de forma mais amigável.

Pois ai vai as perguntas: :)
1 - Existe algum recurso no framework que me auxilie nesta tarefa? (Realmente já procurei e não encontrei).

2 - Caso não exista, eu iria implementar para a minha aplicação. Mas, para isto, eu precisaria ter um arquivo que faria a conversão do erro do banco de dados para o "português-usuário" :)
Como o trabalho é meio manual, e, eu ainda não conheço bem o framework, será que terá problemas futuros com a convenção do FW se incluir uma nova pasta dentro de protected? Ou mesmo dentro de protected/messages, onde ficaria a minha tabela de tradução de erros?

Vlw a atenção. :)

0

#2 User is offline   ricardograna 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 376
  • Joined: 31-March 09
  • Location:Manaus/AM - Brazil

Posted 15 June 2009 - 02:13 PM

Seus problemas se acabaram!

Para o tratamento de campos unicos:
- No model pessoas, altere o método 'rules'.Adicione a seguinte linha ao array:

            array('nome', 'unique')


Para o tratamento de erros:
- No manual da versão 1.0.6, leia a seção 'Handling Errors Using an Action'


Para apenas traduzir as mensagens de erro:
- em aplicacao/protected/config/main.php, adicione os valores

'sourceLanguage'=>'pt-br',
'language'=>'pt-br',


Para funcionar direitinho, veja se teu framework possui a pasta yii/framework/views/pt-br. Se nao tiver, crie-a a partir da pasta 'pt' e faça as modificações que achar adequadas.

É isso.


0

#3 User is offline   Daniel Augusto Bastos 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 347
  • Joined: 25-May 09
  • Location:Rio de Janeiro - Brasil

Posted 16 June 2009 - 12:59 PM

vlw rick .. ficou 1000% 
E eu que já iria criar altas paradas pra resolver este problema :)

0

#4 User is offline   Ismael 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 163
  • Joined: 02-June 09
  • Location:Brazil

Posted 25 June 2009 - 11:42 AM

Quote

- em aplicacao/protected/config/main.php, adicione os valores


'sourceLanguage'=>'pt-br',
'language'=>'pt-br',


Cara, muito bom... deixei pra resolver o problema de tradução pro final do meu site e de repente acho esse comentário e pronto, em 5 segundos o site está completamente traduzido (pras coisas básicas no caso).

Adorei.
0

#5 User is offline   ricardograna 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 376
  • Joined: 31-March 09
  • Location:Manaus/AM - Brazil

Posted 29 June 2009 - 01:18 PM

Estes pequenos trechos de código poderiam (e deveriam) estar mais destacados no manual, a meu ver.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users