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 2Quantidade de visualizações: 2957 vezes |
Na parte 1 deste tutorial sobre CRUD em Laravel usando PHP e MySQL (MariaDB) nós criamos a base de dados MySQL para a nossa aplicação biblioteca, criamos a aplicação Laravel, fizemos a migração e rodamos a migração, o que resultou na criação de uma tabela MySQL chamada livros. Nessa segunda parte nós vamos iniciar criando a rota de redirecionamento das ações do CRUD. Vamos criar também o controller e as primeiras views. Criando a rota de redirecionamento - routes/web.php Vá até o diretório C:\xampp\htdocs\biblioteca\routes e abra o arquivo web.php. Você verá que ele possui o seguinte conteúdo: <?php use Illuminate\Support\Facades\Route; /* |-------------------------------------- | Web Routes |-------------------------------------- | | Here is where you can register web routes | for your application. These routes are loaded | by the RouteServiceProvider within a group | which contains the "web" middleware group. Vamos alterar o seu conteúdo para a versão abaixo: <?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\LivroController; Route::resource('livros', LivroController::class); Veja que criamos uma rota para um recurso, que neste caso será o controller LivroController. Passamos o nome livros para esta rota, de forma que a URL http://localhost/biblioteca/public/livros/create abrirá a view para cadastrar um novo livro. Hora de criar o controller e o model - a parte controle e modelo do MVC Com a rota de direcionamento devidamente criada, vamos partir para o controller. Abra uma janela de terminal e digite o comando abaixo: C:\xampp\htdocs\biblioteca>php artisan make:controller LivroController --resource --model=Livro O Artisan nos perguntará se queremos criar o modelo também. Informe "yes" e pressione Enter. A App\Models\Livro model does not exist. Do you want to generate it? (yes/no) [yes]: > yes Se tudo correr bem, você verá a seguinte mensagem: Model created successfully. Controller created successfully. Vá até o diretório C:\xampp\htdocs\biblioteca\app\Http\Controllers e localize o arquivo LivroController.php. Abra-o e note que temos os métodos index(), create(), store(), show(), edit(), update() e destroy(). Cada um destes métodos corresponde a uma ação que podemos executar na tabela de livros. Vamos começar com o método create(). Limpe todo o conteúdo deste controller e deixe apenas o código abaixo: <?php namespace App\Http\Controllers; use App\Models\Livro; use Illuminate\Http\Request; class LivroController extends Controller{ // mostra a view para cadastrar um novo livro O método create() apenas exibirá a página (view) que nos permitirá cadastrar um novo livro. Porém, antes de criar a primeira view, vá no diretório C:\xampp\htdocs\biblioteca\app\Models, localize e abra o arquivo Livro.php. Vamos modificá-lo para o código abaixo: <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Livro extends Model{ use HasFactory; Veja que informamos, no model Livro, os campos da tabela que serão preenchidos com as nossas informações. Os campos id, created_at e updated_at serão gerenciados pelo Laravel. A view para cadastrar um novo livro Chegou o grande momento. Vamos criar a página que nos permitirá cadastrar os livros. Para manter as coisas simples, escreveremos um view bem simples, sem muita formatação. Mas você poderá deixá-la mais bonita mais tarde. O importante aqui é entender a funcionalidade. Veja o código completo para a view create.blade.php: <html> <head> <meta charset="utf-8"> <title>Biblioteca</title> </head> <body> <h1>Novo Livro</h1> @if($status = Session::get('mensagem')) <h2>{{ $status }}</h2> @endif @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.store') }}" method="post"> @csrf <table width="200" border="0" cellspacing="3" cellpadding="3"> <tr> <td>Título:</td> <td><input type="text" name="titulo" id="titulo" placeholder="Título"></td> </tr> <tr> <td>Autor:</td> <td><input type="text" name="autor" id="autor" Aqui nós criamos um formulário com a action apontando para {{route('livros.store')}}, e a forma de envio é POST. Temos também três elementos HTML do tipo input text, cada um com a propriedade name contendo o mesmo nome do campo na tabela livros. Salve esta view no diretório C:\xampp\htdocs\biblioteca\resources\views\livros. Agora abra o seu navegador no endereço http://localhost/biblioteca/public/livros/create e teremos o seguinte resultado: ![]() Agora só precisamos obter as informações do formulário e salvá-las no banco de dados. Gravando o novo livro na tabela do banco de dados Vamos ver agora como obter os dados do formulário, passá-los para o controller, instanciar o model e finalmente persistir no banco de dados MySQL. Você viu que os dados do form são enviados para o método store() do controller livros. Assim, abra o LivroController.php e adicione o código abaixo: <?php namespace App\Http\Controllers; use App\Models\Livro; use Illuminate\Http\Request; class LivroController extends Controller{ // 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 Pronto! A parte CREATE do CRUD já está completa. Experimente cadastrar um novo livro e veja o resultado na tabela do banco de dados. Observe que temos também a validação dos dados do formulário (mensagens indicando quais campos não foram preenchidos) e também uma mensagem de sucesso indicando que os dados foram gravados com sucesso. Na parte 3 deste tutorial veremos como listar os livros cadastrados e a opção de excluir e editar os livros. Até lá. Leia a parte 3 aqui: Como criar um CRUD completo em Laravel 8 - CRUD em Laravel usando PHP e MySQL (MariaDB) - Parte 3 |
![]() |
Veja mais Dicas e truques de Laravel |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |