Felipe, nesses relacionamentos e gravações, tudo está indo beleza... Mas agora, ao colocar um campo de imagem num dos cadastros, acontece o seguinte:
1) validação do campo imagem é externa (não consegui colocar no model ORM) 2) se dá erro, o upload acontece mesmo assim Existe algum formato de exemplo de cadastro com upload de imagem E COM VALIDAÇÃO ?? Pois o formato da documentação não serve para mim, haja vista que valida somente um upload Ou explica como validar, mas um cadastro "completo" não encontrei. Poderiam me orientar uma forma de fazer isso ? Parte do código http://pastebin.com/KkfvnsV5 a ideia seria: 1) se tem gid, carrega o registro e se tem imagem cadastrada, apaga 2) se não tem gid, vai gravar um novo registro e valida o campo da imagem 3) o método do _upload é o mesmo do site do kohana de exemplo de upload de arquivo Valeu mais uma vez pessoal -----Mensagem original----- De: [email protected] [mailto:[email protected]] Em nome de felipe bastos Enviada em: quarta-feira, 12 de fevereiro de 2014 18:09 Para: [email protected] Assunto: Re: [kohana-php] Mais relacionamentos Eu prefiro trabalhar com datas ao inves de flags como esse (CHAR) mas vamos de flag .... const ACTIVE = 1; ativo not null :D basta colocar como padrão do insert 'N' ou 0 e tá validado try { ... $cliente->active = ! $cliente->ACTIVE; if($cliente->save()){ $endereco = ORM::factory('endereco'); } else { throw new Exception('Falha ao salvar o cliente'); } } catch(ORM_Exception..... $e) { $view->errors = $e->message(); $this->redirect('cliente/index'); return; } Se não estiver parecido com isso .. só posso ajudar se mostrar o codigo Em 12/02/14, DS interativa | PHP Grupos<[email protected]> escreveu: > assim, meu cadastro de clientes tem um campo chamado ativo = S/N e no > model não valido isso pois no site não tem como o cliente setar isso. > > se eu validar isso no model, eu teria que colocar um valor no post > injetado, resolvi então não validar no model e colocar como uma > validação externa (no admin) pois no site não vai validar esse campo. > > esse tipo de exceção de campos acontece algumas vezes e nesse caso em > si, o cliente tem um formulario para cadastro de dados, endereços, > imagens. > > entao eu gravo o cliente, gravo os endereços, e as imagens colocando > os vinculos entre eles nas suas tabelas. > quando dá erro, não consigo mostrar como deveria, cada erro no seu > campo e não consigo obter todos para cada model to falhando/errando em > algum lugar...mas to tentando aqui... > > o transaction ja tenho e somente comito se realmente salvar tudo além > de validar separadamente... > > como disse, to errando em alguma coisa ainda...mas valeu pelas > orientações > > Em 12/02/2014 02:57, felipe bastos escreveu: >> >> Nao entendi ... >> >> Vc deixou validacoes fora do model, no admin ta de um jeito, no site >> aberto ta de outro ... >> >> O usuario fez alguma besteira obvia como nao preencher o form ... >> >> E vc nao esta verificando antes de salvar? >> >> So passe adiante se estiver tudo ok ... Save() true ... >> >> A depender das suas rules, salve ou bota uma transaction commit >> roolback para salvar ou desfazer, se nao dever salvar parcialmente. >> >> Quem tem de validar os dados do form e vc ... Ta tudo correto com o >> kohana ;) >> >> Em 11/02/2014 19:48, "DS interativa | PHP Grupos" >> <[email protected] <mailto:[email protected]>> escreveu: >> >> RSRSRSRS >> ok, nesse ponto eu eu consegui chegar parcial, até >> funcionou....mas ao dar um erro, não consegui obter como imaginei, >> ainda mais que tem imagens e com validação externa... >> >> mas enfim, valeu pessoal pelas dicas, to tentando aqui e quaisquer >> outras duvidas relacionadas eu mando mais emails...valeu >> >> Em 11/02/2014 18:56, felipe bastos escreveu: >>> Oxe, qual a dificuldade?? Eu manipulo vários objetos ORMs na >>> mesma action, before, after .. sem problema >>> >>> Cliente tem muitas Imagens (cliente_id) e tem muitos Endereços >>> (cliente_id) >>> >>> Você precisa salvar Cliente primeiro, depois salva Imagem e >>> Endereço ... Ou, se usar ajax .. vc pode fazer o upload da imagem >>> primeiro, salvar temporariamente, guardar endereço na sessão, e >>> quando salvar o cliente, salvar o endereço da imagem na tabela de >>> imagens. >>> >>> No cake o pessoal indexa o form, recentemente passei a fazer o >>> mesmo >>> >>> input name="cliente[nome]" >>> input name="endereco[bairro]" >>> input name="endereco[cidade_id]" >>> >>> $cliente = >>> >>> ORM::factory('Cliente')->values($this->request->post('cliente'))->create(); >>> //esqueci o request do 3.3 >>> >>> $endereco = ORM::factory('endereco')->set('cliente_id', >>> >>> $cliente->id)->values($this->request->post('endereco'))->create(); >>> //fiz >>> de cabeça,verifica aí :D >>> >>> >>> Em 11 de fevereiro de 2014 12:13, Giovanni Donda | DS interativa >>> <[email protected] <mailto:[email protected]>> >>> escreveu: >>> >>> Putz bem que avisaram que manter um relacionamento é >>> complicado (rs) >>> >>> Pessoal (em si para o Felipe heheh), seguinte: >>> >>> É possível: 1 formulario (zão) >>> Gravar em varias tabelas ?? vindo de um post somente ?? >>> >>> Cliente >>> Endereços >>> Imagens >>> >>> Como eu poderia fazer isso ? >>> >>> Tentei aqui sem sucesso criando um ORM para o cliente e após >>> salvar, se >>> salvar >>> Tentei salvar os demais mas não consegui >>> >>> De qualquer forma estou fazendo tudo separado agora para >>> funcionar >>> mas seria mais produtivo se eu conseguisse fazer dessa forma >>> para deixar um >>> cadastro apenas no admin >>> ao invés de vários cadastras pequenos >>> >>> -- >>> Você está recebendo esta mensagem porque se inscreveu no >>> grupo "Kohana Php" dos Grupos do Google. >>> Para cancelar a inscrição neste grupo e parar de receber seus >>> e-mails, envie um e-mail para >>> [email protected] >>> <mailto:kohana-php%[email protected]>. >>> Para postar neste grupo, envie um e-mail para >>> [email protected] >>> <mailto:[email protected]>. >>> Visite este grupo em http://groups.google.com/group/kohana-php. >>> Para obter mais opções, acesse >>> https://groups.google.com/groups/opt_out. >>> >>> >>> >>> >>> -- >>> http://agilesocial.net <http://agilesocial.net/> >>> http://twitter.com/felipebastosweb >>> http://facebook.com/felipebastosweb >>> -- >>> Você está recebendo esta mensagem porque se inscreveu no grupo >>> "Kohana Php" dos Grupos do Google. >>> Para cancelar a inscrição neste grupo e parar de receber seus >>> e-mails, envie um e-mail para >>> [email protected] >>> <mailto:[email protected]>. >>> Para postar neste grupo, envie um e-mail para >>> [email protected] <mailto:[email protected]>. >>> Visite este grupo em http://groups.google.com/group/kohana-php. >>> Para obter mais opções, acesse >>> https://groups.google.com/groups/opt_out. >> >> -- >> Você está recebendo esta mensagem porque se inscreveu no grupo >> "Kohana Php" dos Grupos do Google. >> Para cancelar a inscrição neste grupo e parar de receber seus >> e-mails, envie um e-mail para >> [email protected] >> <mailto:kohana-php%[email protected]>. >> Para postar neste grupo, envie um e-mail para >> [email protected] <mailto:[email protected]>. >> Visite este grupo em http://groups.google.com/group/kohana-php. >> Para obter mais opções, acesse >> https://groups.google.com/groups/opt_out. >> >> -- >> Você está recebendo esta mensagem porque se inscreveu no grupo >> "Kohana Php" dos Grupos do Google. >> Para cancelar a inscrição neste grupo e parar de receber seus >> e-mails, envie um e-mail para [email protected]. >> Para postar neste grupo, envie um e-mail para >> [email protected]. >> Visite este grupo em http://groups.google.com/group/kohana-php. >> Para obter mais opções, acesse https://groups.google.com/groups/opt_out. > > -- > Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" > dos Grupos do Google. > Para cancelar a inscrição neste grupo e parar de receber seus e-mails, > envie um e-mail para [email protected]. > Para postar neste grupo, envie um e-mail para [email protected]. > Visite este grupo em http://groups.google.com/group/kohana-php. > Para obter mais opções, acesse https://groups.google.com/groups/opt_out. > -- http://agilesocial.net http://twitter.com/felipebastosweb http://facebook.com/felipebastosweb -- Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google. Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [email protected]. Para postar neste grupo, envie um e-mail para [email protected]. Visite este grupo em http://groups.google.com/group/kohana-php. Para obter mais opções, acesse https://groups.google.com/groups/opt_out. -- Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google. Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [email protected]. Para postar neste grupo, envie um e-mail para [email protected]. Visite este grupo em http://groups.google.com/group/kohana-php. Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
