Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Erro ao salvar campos multivalues Ola a Todos, Estou tendo problema ao salvar campos multi values, alguém pode me ajudar ? Trecho em que ocorre o erro: ...
RB
Erro ao salvar campos multivalues  
Ola a Todos,

Estou tendo problema ao salvar campos multi values, alguém pode me ajudar ?

Trecho em que ocorre o erro:
  1. <?php
  2. if(!empty($param['cep']) And is_array($param['cep']))
  3.             {
  4.                 foreach($param['cep'] as $row => $object)
  5.                 {
  6.                     $endereco = new Endereco;
  7.                     $cep str_replace("-"""$param['cep'][$row]);
  8.                     
  9.                     $objects $endereco->BuscaCepBanco($cep);
  10.                     if(!empty($objects))
  11.                     {                             
  12.                             // show form values inside a window
  13.                        // $win = TWindow::create('Object id', 0.6, 0.8);
  14.                 
  15.                             //$win->add( '<pre>'.str_replace("\n", '<br>', print_r($objects, true) ).'</pre>'  ); ao descomentar este trecho e comentar o trecho abaixo, verifiquei que esta retornando os valores.
  16.                            
  17.                             $pessoa_endereco = new PessoaEndereco;
  18.                             $pessoa_endereco->pessoa_id         $pessoa_id;
  19.                             $pessoa_endereco->endereco_id       $objects->id;
  20.                             $pessoa_endereco->tipoendereco_id   $param['tipo_endereco_id'][$row];
  21.                             $pessoa_endereco->numero            $param['numero'][$row];
  22.                             $pessoa_endereco->complemento       $param['complemento'][$row];
  23.                             $pessoa_endereco->store();
  24.                             
  25.                         }
  26.                         //$win->show(); para testar descomentar este trecho
  27.                     }
  28.                           
  29.             }
  30. ?>

Segue imagem em anexo com o retorno dos método.


Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (7)


NR

Qual é o erro?
RB

Nataniel, bom dia,

na realidade os dados ( Id) retornado do método BuscaCepBanco não estão sendo gravados na tabela PessoaEndereço;
NR

Pelo que dá para perceber no print, a função BuscaCepBanco está retornando um array.

Não sei ao certo qual o comportamento desejado, mas, se retornar sempre um único registro, acesse a posição 0 do array:
  1. <?php
  2. $pessoa_endereco->endereco_id       $objects[0]->id;
  3. ?>
RB

Então Natanael, a função buscacepbanco verifiica se existe o deposita na base, se já EXISTIR retorna o id do endereço, porém na0 estou conseguindo pegar o ideal retornado, fiz conforme indicou porém não obtive sucesso.
RB

Retificando a mensagem anterior.

O que acontece eu preciso verificar sempre se o cep já existe na base de dados com o método BuscaCepBanco, caso exista é retornado o id de cada endereço

e depois preciso gravar id retornado na tabela PessoaEndereco ( id) para cada endereço.


fiz conforme indicou porém não obtive sucesso.


NR

Rubens, fiz confusão, a variável $objects é um array associativo. Faça:
  1. <?php
  2. $pessoa_endereco->endereco_id $objects['id'];
  3. ?>
RB

Nataniel,

O negócio esta encantado, fiz como indicou e não grava, simplesmente fica com a mensagem carregando, até dar o erro :

SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction .

Você alguma sugestão melhor do que o jeito que estou usando para gravar os dados.