Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Problema para Insert e Upload de imagem na API Pessoas eu estou com um problema para fazer o insert e update de uma imagem via postman na API que eu criei. Passando os parâmetros pelo Params do postman ele insere e ate faz update mas a imagem nunca vai junto em nem um dos dois, quando tento fazer o update pelo PUT do postman passando pelo body ele da uns avisos sobre o TsqlUpdate(talvez eu esteja passando errado via postman os parametros?). ...
MS
Problema para Insert e Upload de imagem na API  
Pessoas eu estou com um problema para fazer o insert e update de uma imagem via postman na API que eu criei. Passando os parâmetros pelo Params do postman ele insere e ate faz update mas a imagem nunca vai junto em nem um dos dois, quando tento fazer o update pelo PUT do postman passando pelo body ele da uns avisos sobre o TsqlUpdate(talvez eu esteja passando errado via postman os parametros?). Se alguem puder ajudar ou pelo menos dar uma luz de como posso resolver isso eu agradeço muito, alias sou novo ainda na área de programação.


Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (3)


NR

Sem ver seu código fica difícil de identificar o que está ocorrendo. Pela primeira mensagem de erro, na linha 150 da classe TSqlUpdate, aparentemente nenhuma coluna foi adicionada ao update. Ou foi adicionada mas o valor não é escalar. Veja a função que faz esse controle:
  1. <?php
  2.  public function setRowData($column$value)
  3.     {
  4.         if (is_scalar($value) OR is_null($value))
  5.         {
  6.             $this->columnValues[$column] = $value;
  7.         }
  8.     }
  9. ?>

Se o arquivo estiver vindo como resource, acredito que vai ter que fazer o insert/update de forma manual, pois não vai passar no controle da função is_scalar.
MS

  1. <?php
  2. class UpdateController extends TPage
  3. {
  4.     public function __construct($param)
  5.     {
  6.         parent::__construct();
  7.         
  8.         
  9.         $location 'https://sandbox.adiantibuilder.com.br/groppoinfo/api_final/produto';
  10.         
  11.         // Informe a chave primária e o seu respectivo ID para fazer o update no registro
  12.         // Neste exemplo id = coluna da chave primária
  13.         $parameters = [
  14.             'id' => 1// nome da chave primária => 1
  15.             'descricao'  => 'Descrição de teste updated',
  16.             'ativo'      => FALSE,
  17.             'data_hora'  => '12/08/2021',
  18.             'foto'       => ''
  19.         ];
  20.         $rest_key 'ad659f8b78181b585942dfdffb7aad62286dd050c9ce6b77c655d17b3844';
  21.         $data AdiantiHttpClient::request($location'PUT'$parameters'Basic '.$rest_key);
  22.         
  23.         echo '<pre>';
  24.         var_dump($data);
  25.         echo '</pre>';
  26.         
  27.     }
  28.     
  29.     // função executa ao clicar no item de menu
  30.     public function onShow($param null)
  31.     {
  32.         
  33.     }
  34.     
  35.    
  36. }
  37. </code>


Esse é o meu código, alias já faz um tempo que eu tenho essa duvida(por que tive uns erros similares com outros problemas), onde fica essa classe TSqlUpdate?(Lembrando que eu estou usando o builder não o Studio). Se possível também responder essa minha outra duvida: onde eu adiciono esse código setRowData? Seria nessa classe UpdateController que eu criei mesmo ou é na classe do TSqlUpdate?
NR

Esse é o código do cliente da requisição. As alterações precisam ser feitas no código "servidor", ou seja, na classe que recebe as informações.
Provavelmente você tem uma classe filha de AdiantiRecordService, que é onde as alterações deverão ser realizadas(sobrescrevendo a função store).

"onde eu adiciono esse código setRowData? Seria nessa classe UpdateController que eu criei mesmo ou é na classe do TSqlUpdate?"
- Ao chamar a função store de um model, o próprio Adianti faz esse tratamento. Se quiser alterar esse comportamento, aí o caminho é usar o método manual de manipulação do banco através da PDO:
https://adianti.com.br/framework_files/tutor/index.php?class=SetupTransactionView