Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

Você está aqui: Laravel ::: Artigos e Tutorias ::: CRUD - CREATE, READ, UPDATE, DELETE

Como criar um CRUD completo em Laravel 8 - CRUD em Laravel usando PHP e MySQL (MariaDB) - Parte 4 - Final

Quantidade de visualizações: 3723 vezes
Na parte 3 deste tutorial sobre CRUD em Laravel usando PHP e MySQL (MariaDB) nós concluímos as ações de listar e excluir livros na base de dados MySQL.

Nessa última parte veremos como implementar os detalhes individuais de cada livro e também como permitir a edição dos dados cadastrados. Vamos começar então?

Como mostrar os detalhes de cada livro cadastrado na base de dados - A parte READ do CRUD

Na parte nós criamos uma view chamada index que contém uma tabela HTML na qual listamos todos os livros já cadastrados. Para cada registro nós fornecemos as opções de ver detalhes, editar e excluir. Sendo assim, abra o arquivo LivroController.php e vamos implementar seu método show():

<?php

namespace App\Http\Controllers;

use App\Models\Livro;
use Illuminate\Http\Request;

class LivroController extends Controller{
  // mostra a view listando os livros cadastrados
  public function index(){
    // obtém todos os livros cadastrados
    $livros = Livro::all();
    
    // direciona para a view e fornece um vetor
    // contendo os livros
    return view('livros.index', compact('livros'));
  }  

  // mostra a view para cadastrar um novo livro
  public function create(){
    return view('livros.create');
  }

  // recebe as informações do formulário e as grava
  // no banco de dados
  public function store(Request $request){
    // valida o formulário
    $request->validate([
      'titulo' => 'required',
      'autor' => 'required',
      'paginas' => 'required']);
    
    // obtém os valores do form
    Livro::create($request->all());
     
    // direciona para página cadastro novamente,
    // com uma mensagem de sucesso
    return redirect()->route('livros.create')
      ->with('mensagem', 'Livro salvo com sucesso.');


Veja que o método show() recebe um Livro como argumento e o envia para a view show. Vamos criá-la agora. Vá até o diretório C:\xampp\htdocs\biblioteca\resources\views\livros e crie um arquivo chamado show.blade.php. Altere o seu conteúdo para a o código abaixo:

<html>
<head>
  <meta charset="utf-8">
  <title>Biblioteca</title>

  <style>
    a {color: blue}
  </style>
</head>
<body>

<h1>Detalhes do Livro</h1>

<table width="500" border="1" cellspacing="0" cellpadding="3">
  <tr>
    <td><strong>Id</strong></td>
    <td>{{ $livro->id }}</td>
  </tr>
  <tr>
    <td><strong>Titulo</strong></td>
    <td>{{ $livro->titulo }}</td>
  </tr>
  <tr>


Com a view devidamente criada, vá até a listagem de livros novamente e clique na opção Detalhes de um deles. Você terá o seguinte resultado:



Pronto? Já podemos passar para a última parte do tutorial, ou seja, a edição dos livros cadastrados?

Finalizando o tutorial - A parte UPDATE do CRUD

Agora que já fizemos o CREATE, o READ e o DELETE do nosso CRUD, chegou a hora do UPDATE. Para isso, abra o nosso controller LivroController.php novamente e vamos adicionar um método chamado edit. Veja o código completo:

<?php

namespace App\Http\Controllers;

use App\Models\Livro;
use Illuminate\Http\Request;

class LivroController extends Controller{
  // mostra a view listando os livros cadastrados
  public function index(){
    // obtém todos os livros cadastrados
    $livros = Livro::all();
    
    // direciona para a view e fornece um vetor
    // contendo os livros
    return view('livros.index', compact('livros'));
  }  

  // mostra a view para cadastrar um novo livro
  public function create(){
    return view('livros.create');
  }

  // recebe as informações do formulário e as grava
  // no banco de dados
  public function store(Request $request){
    // valida o formulário
    $request->validate([
      'titulo' => 'required',
      'autor' => 'required',
      'paginas' => 'required']);
    
    // obtém os valores do form
    Livro::create($request->all());
     
    // direciona para página cadastro novamente,
    // com uma mensagem de sucesso
    return redirect()->route('livros.create')
      ->with('mensagem', 'Livro salvo com sucesso.');
  }

  // vamos mostrar os detalhes do livro informado
  // como argumento
  public function show(Livro $livro){


Veja que o método edit recebe um objeto da classe Livro e o envia para a view edit. Essa view ainda não existe. Portanto, vá até o diretório C:\xampp\htdocs\biblioteca\resources\views\livros e crie um arquivo chamado edit.blade.php. Altere o seu conteúdo para a o código abaixo:

<html>
<head>
  <meta charset="utf-8">
  <title>Biblioteca</title>
</head>
<body>

<h1>Atualizar Livro</h1>

@if($errors->any())
  <h2>Houve alguns erros ao processar o formulário</h2>
  <ul>
     @foreach($errors->all() as $error)
        <li>{{ $error }}</li>
     @endforeach
  </ul>
@endif

<form action="{{ route('livros.update', $livro->id) }}" method="post">
@csrf
@method('PUT')

<table width="200" border="0" cellspacing="3" cellpadding="3">
  <tr>
    <td>Título:</td>
    <td><input type="text" value="{{ $livro->titulo }}" 
      name="titulo" id="titulo" placeholder="Título"></td>
  </tr>
  <tr>
    <td>Autor:</td>
    <td><input type="text" value="{{ $livro->autor }}" 
      name="autor" id="autor" placeholder="Autor"></td>


Com essa view também devidamente pronta, vá até a listagem de livros novamente. Clique na opção Editar de um dos livros e você terá o seguinte resultado:



Note que a propriedade action do formulário HTML está apontando para o método route('livros.update', $livro->id) do controller LivroController. Então, tudo que precisamos fazer para finalizar a nossa aplicação, é implementar este método. Abra o arquivo LivroController.php e adicione este método. Veja o código completo:

<?php

namespace App\Http\Controllers;

use App\Models\Livro;
use Illuminate\Http\Request;

class LivroController extends Controller{
  // mostra a view listando os livros cadastrados
  public function index(){
    // obtém todos os livros cadastrados
    $livros = Livro::all();
    
    // direciona para a view e fornece um vetor
    // contendo os livros
    return view('livros.index', compact('livros'));
  }  

  // mostra a view para cadastrar um novo livro
  public function create(){
    return view('livros.create');
  }

  // recebe as informações do formulário e as grava
  // no banco de dados
  public function store(Request $request){
    // valida o formulário
    $request->validate([
      'titulo' => 'required',
      'autor' => 'required',
      'paginas' => 'required']);
    
    // obtém os valores do form
    Livro::create($request->all());
     
    // direciona para página cadastro novamente,
    // com uma mensagem de sucesso
    return redirect()->route('livros.create')
      ->with('mensagem', 'Livro salvo com sucesso.');
  }

  // vamos mostrar os detalhes do livro informado
  // como argumento
  public function show(Livro $livro){
    return view('livros.show', compact('livro'));
  }  

  // método que permite excluir um livro
  public function destroy(Livro $livro){
    // vamos chamar o método delete() do Eloquent
    $livro->delete();
    
    // vamos chamar a view com uma mensagem de
    // de sucesso.
    return redirect()->route('livros.index')
      ->with('mensagem','Livro excluído com sucesso.');


Note que o método update() recebe os dados do formulário e também o livro cujos dados estão sendo atualizados. No corpo deste método nós fazemos a validação dos dados e, se estiver tudo correto, nós enviamos o usuário para a listagem de livros novamente, junto com uma mensagem indicando que o livro foi atualizado com sucesso.

E aqui finalizamos o nosso tutorial sobre CRUD em Laravel usando PHP e MySQL (MariaDB). Espero que você tenha conseguido seguir todos os passos com sucesso. Agora é só fazer as alterações desejadas de acordo com os requisitos de sua aplicação.

Link para compartilhar na Internet ou com seus amigos:

Veja mais Dicas e truques de Laravel

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 29 usuários muito felizes estudando em nosso site.