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
---------------------------