Advertisement
Guest User

Untitled

a guest
Dec 27th, 2019
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.83 KB | None | 0 0
  1.  public function update(StoreUpdateProductFormRequest $request, $id)
  2.     {  
  3.         $produto = $this->produto->find($id);
  4.  
  5.         $dados = $request->all();
  6.  
  7.         if($request->hasFile('imagem') && $request->file('imagem')->isValid()) {
  8.  
  9.             //verifica antes se já há um arquivo com mesmo nome, caso sim, é deletado
  10.             //assim se evita possiveis conflitos caso a imagem tenha nome diferente
  11.             if($produto->imagem) {
  12.                 if(Storage::exists("produtos/{$produto->imagem}")) {
  13.                    Storage::delete("produtos/{$produto->imagem}");
  14.                 }
  15.             }
  16.  
  17.             $nome = kebab_case($request->nome); // pega o nome original do produto e já o trata com o helper
  18.            
  19.             $extensao = $request->imagem->extension(); // pega o tipo da extensão
  20.            
  21.             $nomeArquivo = "{$nome}.{$extensao}"; // cria um n nome pro arquivo
  22.            
  23.             $dados['imagem'] = $nomeArquivo; // salva na colula imagem o nome do arquivo
  24.            
  25.             $upload =  $request->imagem->storeAs('produtos', $nomeArquivo);
  26.            
  27.             if(!$upload) {
  28.                 return response()->json(['error' => 'Falha no upload'], 500);
  29.             }
  30.  
  31.         } else {
  32.             if($produto->imagem) {
  33.                 $nome = kebab_case($request->nome);
  34.  
  35.                 $extensao = DB::select("SELECT SUBSTRING_INDEX(imagem,'.',-1) AS extensao FROM produtos
  36.                                        WHERE id = :id", ['id' => $id]);
  37.  
  38.                 $dados['imagem'] = "{$nome}.{$extensao[0]->extensao}";    
  39.             }        
  40.         }
  41.  
  42.         if(!$produto) {
  43.             return response()->json(['error' => 'Nao encontrado'], 404);
  44.         }
  45.  
  46.         $produto->update($dados);
  47.  
  48.         return response()->json($produto);
  49.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement