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 - FinalQuantidade 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. |
![]() |
Veja mais Dicas e truques de Laravel |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |