agora não tenho .. mas o upload acontece independente do banco de dados, este é apenas uma das formas de armazenar o endereço da figura.
Você pode validar o MIME, tamanho, etc da figura .. e só salvar o path se estiver tudo ok .. continue, você está no caminho certo :D Em 15 de fevereiro de 2014 19:03, Giovanni Donda | DS interativa < [email protected]> escreveu: > 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. > -- 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.
