Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function update(StoreUpdateProductFormRequest $request, $id)
- {
- $produto = $this->produto->find($id);
- $dados = $request->all();
- if($request->hasFile('imagem') && $request->file('imagem')->isValid()) {
- //verifica antes se já há um arquivo com mesmo nome, caso sim, é deletado
- //assim se evita possiveis conflitos caso a imagem tenha nome diferente
- if($produto->imagem) {
- if(Storage::exists("produtos/{$produto->imagem}")) {
- Storage::delete("produtos/{$produto->imagem}");
- }
- }
- $nome = kebab_case($request->nome); // pega o nome original do produto e já o trata com o helper
- $extensao = $request->imagem->extension(); // pega o tipo da extensão
- $nomeArquivo = "{$nome}.{$extensao}"; // cria um n nome pro arquivo
- $dados['imagem'] = $nomeArquivo; // salva na colula imagem o nome do arquivo
- $upload = $request->imagem->storeAs('produtos', $nomeArquivo);
- if(!$upload) {
- return response()->json(['error' => 'Falha no upload'], 500);
- }
- } else {
- if($produto->imagem) {
- $nome = kebab_case($request->nome);
- $extensao = DB::select("SELECT SUBSTRING_INDEX(imagem,'.',-1) AS extensao FROM produtos
- WHERE id = :id", ['id' => $id]);
- $dados['imagem'] = "{$nome}.{$extensao[0]->extensao}";
- }
- }
- if(!$produto) {
- return response()->json(['error' => 'Nao encontrado'], 404);
- }
- $produto->update($dados);
- return response()->json($produto);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement