Bem, se é pra ser num formulário só, criar uma coisa assim:

//Na adição:
$data['nome'] = '';
$data['logradouro'] = '';

//Na edição:
$cliente = new Cliente($id);
$data['nome'] = $cliente->nome;
$data[ logradouro'] = $cliente->logradouro;

E na view
<input value="<?php echo set_value('nome', $nome); ?>"

Enfim, o criador do datamapper fica no canal do codeigniter, no IRC. O server é 
freenode, o mesmo do nosso movimentadissimo canal :(

Em 2011/04/15, às 12:08, [email protected] escreveu:

> 
> Rafael, 
> Do jeito que você coloca, eu precisaria ter um formulário pra inserir e um 
> pra editar. A idéia é fazer isso com um formulário só.
> 
> Pra isso eu tive a idéia do array. Assim chamava os índices associativos nos 
> campos. 
> 
> Acho que vou ter que voltar pra isso mesmo. Em todo caso, onde e como acho o 
> criador do datamapper?
> 
> Abraços
> 
> -----Msg original-----
> De: Rafael V. de Oliveira
> Enviado:  15/04/2011 06:39:04
> Assunto:  Re: [CodeIgniter] DataMapper e sua validação
> 
> 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
> ---------------------------
> 
> 
> _______________________________________________
> [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