MIGRANDO SISTEMA PHP PARA O LARAVEL 8
-
Iniciar o projeto
- composer create-project --prefer-dist Laravel/Laravel ERP -
Instalar NPM para as dependências Front End do Scaffold
- npm install - npm run dev -
Criar o banco de dados
- create database Fornecedores; -
Importar o banco de dados
- importar o banco de dados do sistema antigo em php -
Conxexão com banco de dados
-DB_CONNECTION=mysql -DB_HOST=127.0.0.1 -DB_PORT=3306 -DB_DATABASE=Fornecedores -DB_USERNAME=root -DB_PASSWORD=7070 -
endpoints do caminho das rotas e seus respectivos metodos
- php artisan make:controller --resource FornecedorController --model=Fornecedor - Chamando a rota pelo nome ->name(''). - Route::resource('/fornecedores', FornecedorController::class); - Route::get('/fornecedores', 'App\Http\Controllers\FornecedorController@index')->name('fornecedor'); - Route::get('/fornecedores/create', 'App\Http\Controllers\FornecedorController@create')->name('fornecedorCreate'); - Route::post('/fornecedores/store', 'App\Http\Controllers\FornecedorController@store')->name('fornecedorStore'); - Route::get('/fornecedores/edit', 'App\Http\Controllers\FornecedorController@edit')->name('fornecedorEdit'); - Route::put('/fornecedores/update', 'App\Http\Controllers\FornecedorController@update')->name('fornecedorUpdate'); - Route::delete('/fornecedores/destroy', 'App\Http\Controllers\FornecedorController@destroy')->name('fornecedorDestroy'); II)Habilitar o controller das rotas Route>Web.php use App\http\Controllers\ProdutoVendaController; -
Retornar o caminho e metodo index de fornecedores
public function index(){ return view('fornecedor.index'); } incluir -
Criar Repositorio e suas respectivas views fornecedor>index.blade.php
- usar o template admin bootstrap 5 responsive - copiar tabela do template admin bootstrap 5 e personalizar - {{passando o caminho.metodo do controller}} - Declarando o Method="" - action definindo o caminho onde a requisição será disparada <form method="post" action="{ route('fornecedores.create') }" class="row g-3">II)Criar tabela fornecedores e seu cabeçario d
- <table> - dentro da table criar o cabecario da tabela - cabeçario da tabela <tr> - cedula de registros da tabela <td> - dentro do <td> os nomes do cabeçario da tabela <table id="""> <thead> <tr> <th> ID </th> <th> pessoa </th> <th> cidade< /th> <th> Acao </th> </tr> </thead>II) criar o corpo da tabela de fornecedores
- corpo do tabela <tbody> - cabeçario da tabela <tr> - cedula de registros da tabela <td> - dentro do <td>açao</td> criar <span> e os link de direcionamento href="" > - <td><span> <a href="">Editar</a> - <span> <a href="">Deletar</a></td> <tbody> <tr role="row" class="odd"> <td class="sorting_1">FOR - </td> <td></td> <td></td> <td> <span> <a href="" class="btn btn-warning">Editar</a> @csrf @method('post') </span> <span> <a href="" class="btn btn-danger">Excluir</a> </span> </td> </tr> </tbody> -
Preparar o corpo do formulario da table p/ os Request
- incluir @foreach p/ pecorrer todo registro dentro do corpo da tabela <tbody> pegando as colunas do banco - passar $variavel recebendo request as $class do model com os atributos ($fornecedores as $fornecedor) - incluir nos registro <td> $class pegando os atributo_banco {{ $variavel->atributo_banco }} - $fornecedor {{$fornecedor->name}} alimentada com atribudos do banco q vai passar p/ a $fornecedores armazenar. <tbody> @foreach ($fornecedores as $fornecedor) <tr> <td >FOR - {{ $fornecedor->sup_id }}</td> <td>{{ $fornecedor->name }}</td> <td>{{ $fornecedor->postal_code }}</td> <td>{{ $fornecedor->city }}</td> <td> <span> <a href="{{ route('fornecedores.edit', $fornecedor->sup_id]) }}" class="btn btn-warning">Editar</a> @csrf @method('post') </span <span> <a href="" class="btn btn-danger">Excluir</a> </span> </td> </tr> @endforeach </tbody> -
Listando os Dados com metodo Index do controller
- Criando variavel $fornecedores recebendo os atributos da class Fornecedor - returnando a view do caminho da rota e seu metodo ('fornecedor.index', - método compact ('fornecedores')) pegando os atributidos da $variavel recebendo os atributos da class public function index(){ //variavel recebendo todos os atributos da class vindo da view fornecedor $fornecedores = Fornecedor::all(); return view('fornecedor.index', compact('fornecedores')); } -
Definindo o caminho da rota e seu metodo no botao adicionar da view index.blade
<a href="{{ route('fornecedores.create') }}" class="btn btn-success float-right">Adicionar</a> -
Criar cadastro de novos fornecedores
public function create(){ return view('fornecedor.create'); } -
Criar Repositorio e suas respectivas views fornecedor>create.blade.php
- usar o template admin bootstrap 5 responsive - copiar tabela do template admin bootstrap 5 e personalizar -
Criar formulario para cadastrar novos fornecedores da view create.blade
- preparar o cabecario do formulario <head> - Declarando o Method="" - action=" definindo o caminho e seu metodo de requisição q será disparada - {{passando a rota ( o caminho.metodo do controller) }}" - dentro do formulario criar uma div label representando o titulo do cabeçario - personalizar o corpo formulario - <label nome do campo dos registros do formulario - criar input e definir seu type="" e name"" <form method="post" action="{{ route('fornecedores.store') }}" class="row g-3"> @csrf @method('post') <div class="col-md-7"> <label>Produtos dos fornecedores</label> </div> <div class="col-md-6"> <label>CEP:</label> <input type="text" name="postal_code"> </div> -
Preparar o corpo do formulario da table p/ os Request
- criar mais os campos do formulario de cadastro - label definindo o nome do campo - alimentando os iput, definindo o type="" e name="" <div> <label >CEP:</label> <input type="text" name="postal_code"> </div> <div > <label>Endereço:</label> <input type="text" name="address"> </div> - criar o button do typy="submit" pra enviar os dados do formulario <div class="col-12"> <button type="submit" class="btn btn-light px-5">Register</button> </div> </form> -
Metodo resposavel por Retorna a View para criar um item da tabela
- $array = recebendo todos os atributos da class Fornecedor::all(); - returnando a view do caminho da rota e seu metodo ('fornecedor.create', - método compact ('fornecedor')) pegando os atributidos da $variavel recebendo os atributos da class public function create(){ //$array recebendo todos os atributos da class Estado $fornecedor = Fornecedor::all(); return view('fornecedor.create', compact('fornecedor')); } -
Disparando os dados do formulario para o metodo Store receber request e armazenar os dados no banco
public function store(Request $request) { } -
criar Moldel Banco e Estado complementando os campos de form da tabela sp_supplier
php artisan make:model Banco php artisan make:model Estado // php artisan make:model -mcr Fornecedor -
atribuir o método save na instância do modelo para inserir os dados no banco
use App\Models\Fornecedor; use App\Models\Banco; use App\Models\Estado; -
definindo quais atributos do modelo vão ser atribuidos em massa.
protected $table = 'sp_supplier'; public $timestamps = false; protected $fillable = [ 'sup_id', 'sup_type', 'person', 'name', 'rg', 'cpf', 'cnjp', ]; -
SE necessario Criando as tabelas no banco de dados e a Migration
php artisan make:migration create_fornecedores_table Schema::create('fornecedores', function (Blueprint $table) { $table->id('sup_id'); $table->integer('sup_type'); $table->string('person', 200); $table->decimal('rg' 17); }); php artisan migrate -
Store p/ obtenção request ::create salvando novos registros (passando parametro das respectivas Class::)
- Disparando dados do form p/ metodo Store receber request e armazenar os dados no banco - Extender as class::salvando request do form's metodo post atribuidos do name="" view Create - Criar $variavel p/ = receber class com os atribuidos name="" metodos create p/ salvar - Metodo ->all() selecionando ('todos') os name="" q vao ser salvos - Metodo ->Only selecionando ('apenas') os name="" q vao ser salvos // ao contrario do ->all(); public function store(Request $request) { Fornecedor::create($request->all()); return redirect()->route('fornecedores.index'); - no caso se for usar o metodo ->only $fornecedor = Fornecedor::create($request->only(['postal_code', 'number','city','cellphone', 'emails'])); -
Definindo o caminho da rota e seu metodo no botao editar da view index.blade
- Token @csrf - verbo http da tota @method('') <a href="{{ route('fornecedores.editar') }}" class="btn btn-success float-right">Editar</a> @csrf @method('post') -
Metodo Edit responsalvel por Retorna a View de edição de dados
- Criar view index.blade - Copiar view create.blade e colar na view index.blade - definir method="" da action - definir o caminho da rota e seu metodo action="{{ route('fornecedores.update', - passar o request com os names inputs alimentados $fornecedor->sup_id) }}" - token @csrf para validar o envio dos dados - @method('') do verbo http da rota <form method="post" action="{{ route('fornecedores.update', $fornecedor->sup_id) }}" class="row g-3"> @csrf @method('PUT') - alimentar os input que já tem o type="" e name="" armazenado os dados - alimentar os value="{{$fornecedor->complement}}" do input q vao exibir os dados armazenado dos name="" <div class="col-md-6"> <label >CEP:</label> <input type="text" name="postal_code" value="{{$fornecedor->postal_code}}"> </div> -
Passado os parametros (Request $request) na function do Metodo Edit
- Criando variavel $fornecedores recebendo os atributos da class Fornecedor - returnando a view do caminho da rota e seu metodo ('fornecedor.edit', - método compact ('fornecedores')) pegando os atributidos da $variavel recebendo os atributos da class public function edit(Providers $providers){ return view('fornecedor.edit', compact('fornecedores')); } -
Definindo primary key sup_id referente ao model da tabela suppiller onde vai ser atribudos os valoes
protected $primaryKey = 'sup_id'; -
metodo UPDATE responsavel pelo processo de atualizacao das informacoes do metodo edit
- $variavel-> ativado pelo metodo udpate, passando o $request e todos seus atribudos alimentados public function update(Request $request, Produto $produto){ $produto->update($request->all()); return redirect()->route('produto.index'); } -
Deletando os dados
public function destroy(Providers $providers) { $providers->delete(); return redirect()->route('fornecedores.index'); } -
Mostra um item específco com Methodo show recebendo objeto instaciado
public function update(Request $request, Providers $providers) { $providers->update($request->all());
return redirect()->route('fornecedores.index'); }
------------------------------------ GIT HUB ----------------------------------------------------------------------
- git status -> ver alterações no projeto
- git add . -> adicionar as alterações no projeto
- git commit -m "descriçãodocommit" -> descrever o commit
- git push -f -> pra forçar o envio do arquivo pro git