Daniel, eu também senti dúvidas em relação a validação do DataMapper.

O que eu decidi fazer é manter a validação no controller e não no model do 
DataMapper.
Assim ó: http://d.pr/NhyA
As views ficam normais mesmo, com o input value="<?php echo set_value('campo'); 
?>" na adição e <?php echo set_value('campo', $cliente->campo); ?> na edição

Eu venho pensando em colocar a validação no model, porém teria que, dentro do 
mesmo, carregar a library form_validation. Não sei se é uma boa prática. Mesmo 
assim, desta forma, manteria o controller bem mais enxuto, só com os métodos de 
adicionar e editar. A lógica mesmo estaria no model. Ainda ando a pensar no 
assunto.

Já no teu caso, terás de fazer o seguinte (no meu entendimento).

Busque o tipo de telefone desejado (na tabela tipostelefone). Depois crie um 
objeto referente a tabela telefonesclientes.
Este objeto trabalharia assim:
$telefonesclientes->telefone = $this->input->post('telefone');
$telefonesclientes->tipotelefone_id = A primeira busca an tabela tipostelefones
$telefonesclienes->cliente_id = O cliente já guardado no bd.

Há uma forma de automatizar isso usando o próprio save do DataMapper, passando 
como parâmetro o objeto cliente. Mas é melhor dar uma lida para ver se encaixa 
na tua situação. Eu mesmo me perco com isso :'(
http://datamapper.wanwizard.eu/pages/save.html#Relationship

Se conseguires uma forma mais prática, avise-me.
Eu ando a penar com um sistema de reserva de viagens de avião.
Eu tenho o pacote e dentro do pacote eu posso ter vários locais de partida.
Por exemplo:
Um pacote que vai pro Rio de Janeiro pode partir de Lisboa ou do Porto. O 
cliente na hora da reserva vai escolher o local de partida.
Resolvi, mas tive que fazer gambetas, com o velho $this->db->where('.....

Olha, o criador do DataMapper está sempre no canal do codeigniter no IRC. Já me 
ajudou algumas vezes.

[]'s


Em 2011/04/15, às 03:24, Daniel Medina escreveu:

> então. to com o seguinte problema: estou jogando minhas regras de validação
> do form_validation pro validation do DataMapper.
> 
> Motivo: quando havia erro de validação, a maneira mais fácil de eu preencher
> novamente o formulário com os dados passados eu tinha que criar um  array
> com os campos. Para preencher os dados pra edição, eu utilizava um array da
> mesma estrutura utilizada para voltar os dados da validação. Logo, eu tenho
> um array único para as duas coisas.
> 
> Isso tava me incomodando. Tava me sentindo com se estivesse reescrevendo
> código esse array. Então achei boa idéia jogar tudo pro validation do
> DataMapper.
> 
> taí a pergunta 1: É boa ideia?
> 
> eu tenho esse modelo
> http://d.pr/He4T
> 
> eu salvo um cliente, salvo seu usuário. Mas eu tenho "N" telefones e um tipo
> de telefone associado a cada telefone.
> 
> Na hora de validar, eu só tenho que me preocupar com com UM cliente, UM
> usuário e VÁRIOS telefones. O problema é: em caso de erro do segundo
> telefone de 3 telefones, como vou fazer para retornar as instâncias todas já
> setadas para o formulário evitando que o usuário não precise preencher tudo
> novamente? E como vou fazer rollback de tudo se eu so posso fazer um
> rollback por instância?
> 
> Alguém tem uma solução cabível?
> 
> Abraços!
> 
> -- 
> Daniel Medina
> _______________________________________________
> [email protected]
> http://www.codeigniter.com.br
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> 
> ---------------------------
> Oportunidade de negócio
> http://www.franquiasargohost.net
> ---------------------------

_______________________________________________
[email protected]
http://www.codeigniter.com.br
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

---------------------------
Oportunidade de negócio
http://www.franquiasargohost.net
---------------------------

Responder a