"# Petshop"
Projeto Petshop com Laravel
1- Criar o projeto: Abra o terminal na pasta desejada e rode um dos dois comandos para criar o projeto composer create-project --prefer-dist laravel/laravel petshop laravel new petshop (Opção pra quem tem o laravel de forma global)
2- Entre na pasta do projeto criado cd petshop
3- Criar database mysql: Estou utilizando o usuário e senha php, caso queira fazer igual crie o usuário antes de continuar. Faço login no mysql-> mysql -u root -p
CREATE USER 'php'@'localhost' IDENTIFIED BY 'php'; GRANT ALL PRIVILEGES ON * . * TO 'php'@'localhost'; FLUSH PRIVILEGES;
use o comando abaixo para criar o database a senha será php neste caso. echo create database petshop | mysql -u php -p
4- Edit o arquivo de conexão com o banco mysql no terminal vim .env (ou editor preferido)
APP_NAME=Petshop
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=petshop DB_USERNAME=php DB_PASSWORD=php
5-Rodar migrations(banco de dados) nativas (dados dos usuários)
php artisan migrate
caso sucesso aparecerá algo como isto
Migration table created successfully. Migrating: 2014_10_12_000000_create_users_table Migrated: 2014_10_12_000000_create_users_table Migrating: 2014_10_12_100000_create_password_resets_table Migrated: 2014_10_12_100000_create_password_resets_table
Caso tenha Problemas https://gilbertoalbino.com/laravel-problemas-com-mysql-8-e-eloquent/ Alterar o arquivo C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
#default_authentication_plugin=caching_sha2_password default_authentication_plugin=mysql_native_password
6- Testando o ambiente: rode o comando php artisan serve resultado Laravel development server started: http://127.0.0.1:8000
acesse localhost:8000 A página de boas vindas do laravel deverá aparecer.
7- Ativando autenticação e criação do layout app php artisan make:auth
resultado Authentication scaffolding generated successfully.
De um refresh na página do laravel e deverá aparecer Login and Register
8- Criar migration e model clientes
php artisan make:model Cliente -m (O parametro -m cria a migration)
resultado Model created successfully. Created Migration: 2019_07_03_233453_create_clientes_table
9-Criar tabela clientes Abra o arquivo \petshop\database\migrations\2019_07_03_233453_create_clientes_table.php e deixe conforme abaixo
bigIncrements('id'); $table->string('nome'); $table->string('telefone'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('clientes'); } } rode o comando php artisan migrate resultado Migrating: 2019_07_03_233453_create_clientes_table Migrated: 2019_07_03_233453_create_clientes_table 10- Criar controller rode o comando php artisan make:controller ClienteController --resource resultado Controller created successfully. Arquivo criado \petshop\app\Http\Controllers\ClienteController.php 11- Criar rotas Edite o arquivo \petshop\routes\web.php Adicione as rotas abaixo Cria todas as Rotas utilizadas no projeto. Route::resource('clientes', 'ClienteController')->middleware('auth'); Route::post('cliente', 'ClienteController@find')->name('clientes.find')->middleware('auth'); para verificar as rotas criadas rode o comando php artisan route:list resultado +--------+-----------+-------------------------+------------------+------------------------------------------------------------------------+--------------+ | Domain | Method | URI | Name | Action | Middleware | +--------+-----------+-------------------------+------------------+------------------------------------------------------------------------+--------------+ | | GET|HEAD | / | | Closure | web | | | GET|HEAD | api/user | | Closure | api,auth:api | | | POST | cliente | clientes.find | App\Http\Controllers\ClienteController@find | web,auth | | | POST | clientes | clientes.store | App\Http\Controllers\ClienteController@store | web,auth | | | GET|HEAD | clientes | clientes.index | App\Http\Controllers\ClienteController@index | web,auth | | | GET|HEAD | clientes/create | clientes.create | App\Http\Controllers\ClienteController@create | web,auth | | | DELETE | clientes/{cliente} | clientes.destroy | App\Http\Controllers\ClienteController@destroy | web,auth | | | PUT|PATCH | clientes/{cliente} | clientes.update | App\Http\Controllers\ClienteController@update | web,auth | | | GET|HEAD | clientes/{cliente} | clientes.show | App\Http\Controllers\ClienteController@show | web,auth | | | GET|HEAD | clientes/{cliente}/edit | clientes.edit | App\Http\Controllers\ClienteController@edit | web,auth | | | GET|HEAD | home | home | App\Http\Controllers\HomeController@index | web,auth | | | POST | login | | App\Http\Controllers\Auth\LoginController@login | web,guest | | | GET|HEAD | login | login | App\Http\Controllers\Auth\LoginController@showLoginForm | web,guest | | | POST | logout | logout | App\Http\Controllers\Auth\LoginController@logout | web | | | POST | password/email | password.email | App\Http\Controllers\Auth\ForgotPasswordController@sendResetLinkEmail | web,guest | | | GET|HEAD | password/reset | password.request | App\Http\Controllers\Auth\ForgotPasswordController@showLinkRequestForm | web,guest | | | POST | password/reset | password.update | App\Http\Controllers\Auth\ResetPasswordController@reset | web,guest | | | GET|HEAD | password/reset/{token} | password.reset | App\Http\Controllers\Auth\ResetPasswordController@showResetForm | web,guest | | | POST | register | | App\Http\Controllers\Auth\RegisterController@register | web,guest | | | GET|HEAD | register | register | App\Http\Controllers\Auth\RegisterController@showRegistrationForm | web,guest | +--------+-----------+-------------------------+------------------+------------------------------------------------------------------------+--------------+ 12- Crud Iniciando pela Index Adicionar as duas linhas no Controller cliente use App\Cliente; use Session; Método index public function index() { $clientes = Cliente::paginate(10); return view('clientes.index', compact('clientes')); } Necessário criar a view dos clientes. Criado a pasta clientes dentro de views e o arquivos index.blade.php \petshop\resources\views\clientes\index.blade.php Modelo html @extends('layouts.app') @section('content')Petshop
+ Cadastrar
@csrf ClientesNome | Telefone | Ações |
{{ $cliente->nome }} | {{ $cliente->telefone }} | Editar @method('DELETE') @csrf Excluir |
Petshop
+ Cadastrar
@csrf ClientesNome | Telefone | Ações |
{{ $cliente->nome }} | {{ $cliente->telefone }} | Editar @method('DELETE') @csrf Excluir |