INSTITUTO FEDERAL DO PARANÁ | Paranaguá Rua Antônio Carlos Rodrigues, 453 - Porto Seguro, Paranaguá - PR | 83215-750 – Brasil (1/21)
MINICURSO LARAVEL 5.5 Gil Eduardo de Andrade
Download: www.gileduardo.com.br/ifpr/laravel/minicurso_laravel.zip
1. BAIXANDO O COMPOSER Referência https://getcomposer.org/download/ Baixando o Composer No terminal, execute (copie e cole) os seguintes comandos: php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === '93b54496392c062774670ac18b134c3b3a95e5a5e5c8f1a9f115f203b75bf9a129d5daa8ba6a13e2cc8a1da0806388a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');"
INSTITUTO FEDERAL DO PARANÁ | Paranaguá Rua Antônio Carlos Rodrigues, 453 - Porto Seguro, Paranaguá - PR | 83215-750 – Brasil (2/21)
2. CRIANDO PROJETO VIA COMPOSER
No terminal (mesmo diretório onde baixou o Composer), execute (copie e cole) o seguinte comando: ./composer.phar create-project laravel/laravel minicurso 5.5 --prefer-dist
3. EXECUTANDO SERVIDOR LARAVEL E TESTANDO A APLICAÇÃO CRIADA No terminal (mesmo diretório onde baixou o Composer), execute (copie e cole) os seguintes comandos: cd minicurso php artisan serve
Agora abra o navegador digite a URL apresentada no terminal: 127.0.0.1:8000
INSTITUTO FEDERAL DO PARANÁ | Paranaguá Rua Antônio Carlos Rodrigues, 453 - Porto Seguro, Paranaguá - PR | 83215-750 – Brasil (3/21)
4. ENTENDENDO O CONCEITO DE ROTAS – BÁSICO Diretório – Arquivo router/web.php
5. ARQUIVOS DE VISUALIZAÇÃO – VIEWS Diretório resources/views Arquivo welcome.php
6. ADICIONANDO ARQUIVOS BOOTSTRAP Diretório public/css Adicionar os arquivos: bootstrap.min.css e theme.css Diretório public/js Adicionar os arquivos: bootstrap.min.js e jquery-3.3.1.slim.js
INSTITUTO FEDERAL DO PARANÁ | Paranaguá Rua Antônio Carlos Rodrigues, 453 - Porto Seguro, Paranaguá - PR | 83215-750 – Brasil (4/21)
7. TRABALHANDO COM BLADE – VIEW PRINCIPAL E MAIN
Criar o Diretório “img”: public/img Adicionar as imagens: curso_ico. pnp, cursop_ico. pnp , turma_ico. pnp e turmap_ico. pnp Copiar o Diretório: public/fonts Diretório resources/views Adicionar os arquivos: principal.blade.php e main.blade.php
8. ALTERNANDO A ROTA PRINCIPAL – PÁGINA MAIN Diretório router/web.php
9. CRIANDO AS CLASSES DE MODELO – ARTISAN Terminal Ctrl + c (aborta a execução do artisan serve) Terminal
INSTITUTO FEDERAL DO PARANÁ | Paranaguá Rua Antônio Carlos Rodrigues, 453 - Porto Seguro, Paranaguá - PR | 83215-750 – Brasil (5/21)
php artisan make:model Curso -m (cria a classe de modelo para cursos – com migration) Terminal php artisan make:model Turma -m (cria a classe de modelo para turmas – com migration)
Terminal php artisan make:model Nivel -m (cria a classe de modelo para nivel – com migration) Os arquivos para as classes de modelo foram criados no diretório “app/” Foram criadas, ainda, as migrations no diretório “database/migrations”
10. CONFIGURANDO A CONEXÃO COM O BANCO DE DADOS Diretório (principal) / Editar o arquivo: .env Modificar os dados de autenticação para o seu banco de dados. Veja o exemplo a seguir:
Você precisa alterar, com os dados de conexão com a sua base de dados, os campos DB_DATABASE, BD_USERNAME e DB_PASSWORD.
INSTITUTO FEDERAL DO PARANÁ | Paranaguá Rua Antônio Carlos Rodrigues, 453 - Porto Seguro, Paranaguá - PR | 83215-750 – Brasil (6/21)
11. DEFININDO OS CAMPOS DAS TABELAS – MIGRATION Diretório /database/migrations Editar o arquivo: 2018_12_07_165432_create_cursos_table.php
Editar o arquivo: 2018_12_07_165907_create_turmas_table.php
Editar o arquivo: 2018_12_07_172321_create_nivels_table.php
12.CRIANDO AS TABELAS NO BD MYSQL – VIA MIGRATON Terminal php artisan migrate (cria as tabelas para curso, turma e nível)
INSTITUTO FEDERAL DO PARANÁ | Paranaguá Rua Antônio Carlos Rodrigues, 453 - Porto Seguro, Paranaguá - PR | 83215-750 – Brasil (7/21)
13. POVOANDO A TABELA NÍVEL VIA SEEDER Diretório database/seeds Editar/Adicionar ao arquivo: DatabaseSeeder.php DB::insert('INSERT INTO nivels(nome, abreviatura) VALUES(?, ?)', array('Técnico - Médio Integrado', 'Médio'));
DB::insert('INSERT INTO nivels(nome, abreviatura) VALUES(?, ?)', array('Tecnólogo - Graduação', 'Superior')); DB::insert('INSERT INTO nivels(nome, abreviatura) VALUES(?, ?)', array('Licenciatura - Graduação', 'Superior')); DB::insert('INSERT INTO nivels(nome, abreviatura) VALUES(?, ?)', array('Bacharel - Graduação', 'Superior')); DB::insert('INSERT INTO nivels(nome, abreviatura) VALUES(?, ?)', array('Pós-Graduação', 'Especialização'));
INSTITUTO FEDERAL DO PARANÁ | Paranaguá Rua Antônio Carlos Rodrigues, 453 - Porto Seguro, Paranaguá - PR | 83215-750 – Brasil (8/21)
DB::insert('INSERT INTO nivels(nome, abreviatura) VALUES(?, ?)', array('Pós-Graduação', 'Mestrado')); DB::insert('INSERT INTO nivels(nome, abreviatura) VALUES(?, ?)', array('Pós-Graduação', 'Doutorado')); Terminal php artisan db:seed (insere os dados na tabela de nível)
14. CRIANDO A CLASSE DE CONTROLE DOS CURSOS Terminal php artisan make:controller CursoController (criado em “app/Http/Controllers”)
Diretório app/Http/Controllers Alterar/Adicionar ao arquivo: CursoController.php use Request; (alterar) use App\Curso; (adicionar) use App\Turma; (adicionar) use App\Nivel; (adicionar) public function listar() { } (adicionar)
INSTITUTO FEDERAL DO PARANÁ | Paranaguá Rua Antônio Carlos Rodrigues, 453 - Porto Seguro, Paranaguá - PR | 83215-750 – Brasil (9/21)
public function cadastrar() { } (adicionar) public function editar() { } (adicionar) public function salvar($id) { } (adicionar) public function remover($id) { } (adicionar) public function confirmar($id) { } (adicionar)
15. CRIANDO AS ROTAS PARA O CRUD DOS CURSOS Diretório routes/ Adicionar ao arquivo: web.php Route::get('/curso', 'CursoController@listar'); Route::get('/curso/cadastrar', 'CursoController@cadastrar'); Route::get('/curso/editar/{id}', 'CursoController@editar'); Route::post('/curso/salvar/{id}', 'CursoController@salvar'); Route::get('/curso/remover/{id}', 'CursoController@remover'); Route::get('/curso/confirmar/{id}', 'CursoController@confirmar');
16. CLASSE CONTROLE DE CURSOS → MÉTODO LISTAR Diretório app/Http/Controllers Adicionar ao arquivo: CursoController.php – Método: listar() $cursos = Curso::all(); $niveis = Nivel::select('id', 'abreviatura')->get(); return view('curso')->with('cursos', $cursos)->with('niveis', $niveis);
17.VIEW CURSOS Diretório resources/views Adicionar o arquivo: curso.blade.php
18. TESTANDO A VIEW CURSOS → LISTAR
Diretório resources/views Alterar o arquivo: main.blade.php Criando o link
INSTITUTO FEDERAL DO PARANÁ | Paranaguá Rua Antônio Carlos Rodrigues, 453 - Porto Seguro, Paranaguá - PR | 83215-750 – Brasil (10/21)
De: <a href=" "> Para: <a href="/curso"> Terminal php artisan serve (iniciando aplicação novamente)
19. CLASSE CONTROLE DE CURSOS → MÉTODO CADASTRAR Diretório app/Http/Controllers Adicionar ao arquivo: CursoController.php – Método: cadastrar() $niveis = NivelModel::orderBy('id')->get(); return view('cursoCadastrar')->with('niveis', $niveis);
20.CLASSE CONTROLE DE CURSOS → MÉTODO SALVAR (Primeira Parte) Diretório app/Http/Controllers Adicionar ao arquivo: CursoController.php – Método: salvar($lid) // INSERT if($id == 0) { $objCurso = new Curso(); $objCurso->nome = mb_strtoupper(Request::input('nome'), 'UTF-8'); $objCurso->abreviatura = mb_strtoupper(Request::input('abreviatura'),
INSTITUTO FEDERAL DO PARANÁ | Paranaguá Rua Antônio Carlos Rodrigues, 453 - Porto Seguro, Paranaguá - PR | 83215-750 – Brasil (11/21)
'UTF-8'); // Obtém Id Nivel $arr = explode(" ", Request::input('nivel')); $objCurso->id_nivel = $arr[0]; // Fim $objCurso->tempo = Request::input('tempo');; $objCurso->ativo = 1; $objCurso->save(); } return redirect()->action('CursoController@listar')->withInput();
21.VIEW CADASTRO DE CURSOS
Diretório resources/views Adicionar o arquivo: cursoCadastar.blade.php
22. TESTANDO CADASTRO DE CURSOS (Na tela de listagem de cursos → Botão “Cadastrar”)
(Na tela de cadastro de cursos → Preencher campos -> Botão “Salvar”)
INSTITUTO FEDERAL DO PARANÁ | Paranaguá Rua Antônio Carlos Rodrigues, 453 - Porto Seguro, Paranaguá - PR | 83215-750 – Brasil (12/21)
23. CLASSE CONTROLE DE CURSOS → MÉTODO EDITAR Diretório app/Http/Controllers Adicionar ao arquivo: CursoController.php – Método: editar($id) // Filtra parâmetro para garantir que é um número if(is_numeric($id)) { $curso = CursoModel::find($id); // Verifica se existe um curso com o 'id' recebido por parâmetro if(empty($curso)) { $msg = "Curso não encontrado para o id=".$id."!"; return view('messagebox')->with('tipo', 'alert alert-warning')
->with('titulo', 'OPERAÇÃO INVÁLIDA') ->with('msg', $msg) ->with('acao', "/curso"); } $niveis = NivelModel::orderBy('id')->get(); return view('cursoEditar')->with('curso', $curso)->with('niveis', $niveis); }
INSTITUTO FEDERAL DO PARANÁ | Paranaguá Rua Antônio Carlos Rodrigues, 453 - Porto Seguro, Paranaguá - PR | 83215-750 – Brasil (13/21)
else { $msg = "Parâmetro via URL Inválido!"; return view('messagebox')->with('tipo', 'alert alert-warning')
->with('titulo', 'OPERAÇÃO INVÁLIDA') ->with('msg', $msg) ->with('acao', "/curso"); }
24. CLASSE CONTROLE DE CURSOS → MÉTODO SALVAR (Segunda Parte) Diretório app/Http/Controllers Adicionar ao arquivo: CursoController.php – Método: salvar($id) // UPDATE else { $objCurso = Curso::find($id); // Verifica se existe um curso com o 'id' recebido por parâmetro if(empty($objCurso)) { $msg = "Curso não encontrado para o id=".$id."!"; return view('messagebox')->with('tipo', 'alert alert-warning')
->with('titulo', 'OPERAÇÃO INVÁLIDA') ->with('msg', $msg) ->with('acao', "/curso"); } $objCurso->nome = mb_strtoupper(Request::input('nome'), 'UTF-8'); $objCurso->abreviatura = mb_strtoupper(Request::input('abreviatura'), 'UTF-8'); // Obtém Id Nivel $arr = explode(" ", Request::input('nivel')); $objCurso->id_nivel = $arr[0]; // Fim $objCurso->tempo = Request::input('tempo'); // Obtém Ativo/Inativo $ativo = Request::input('ativo');
INSTITUTO FEDERAL DO PARANÁ | Paranaguá Rua Antônio Carlos Rodrigues, 453 - Porto Seguro, Paranaguá - PR | 83215-750 – Brasil (14/21)
if (strcmp($ativo, "ATIVO") == 0) { $objCurso->ativo = 1; } else { $objCurso->ativo = 0; } $objCurso->save();
}
25.VIEW ALTERAÇÃO DE CURSOS + VIEW MENSAGEM Diretório resources/views Adicionar os arquivos: cursoEditar.blade.php e messagebox.blade.php
26. TESTANDO ALTERAÇÃO DE CURSOS
(Na tela de listagem de cursos → Botão “Alterar”)
(Na tela de alteração de cursos → Alterar campos -> Botão “Alterar”)
INSTITUTO FEDERAL DO PARANÁ | Paranaguá Rua Antônio Carlos Rodrigues, 453 - Porto Seguro, Paranaguá - PR | 83215-750 – Brasil (15/21)
27. CLASSE CONTROLE DE CURSOS → MÉTODO REMOVER Diretório app/Http/Controllers Adicionar ao arquivo: CursoController.php – Método: remover($id) if(is_numeric($id)) { $curso = Curso::find($id); if(empty($curso)) { $msg = "Curso não encontrado para o ID=".$id."!"; return view('messagebox')->with('tipo', 'alert alert-warning') ->with('titulo', 'OPERAÇÃO INVÁLIDA') ->with('msg', $msg) ->with('acao', "/curso"); } $total_turmas = Turma::where('id_curso', $id)->count(); if($total_turmas == 0) { return view('cursoRemover')->with("curso", $curso); } else {
INSTITUTO FEDERAL DO PARANÁ | Paranaguá Rua Antônio Carlos Rodrigues, 453 - Porto Seguro, Paranaguá - PR | 83215-750 – Brasil (16/21)
$msg = "Existem turmas vinculadas ao curso '$curso->nome' que impedem sua exclusão!";
return view('messagebox')->with('tipo', 'alert alert-danger') ->with('titulo', 'OPERAÇÃO INVÁLIDA') ->with('msg', $msg) ->with('acao', "/curso"); }
} $msg = "Parâmetro via URL Inválido!"; return view('messagebox')->with('tipo', 'alert alert-warning')
->with('titulo', 'OPERAÇÃO INVÁLIDA') ->with('msg', $msg) ->with('acao', "/curso");
28. CLASSE CONTROLE DE CURSOS → MÉTODO CONFIRMAR Diretório app/Http/Controllers Adicionar ao arquivo: CursoController.php – Método: confirmar($id) $objCurso = Curso::find($id); if(empty($objCurso)) { $msg = "Curso não encontrado para o ID=".$id."!"; return view('messagebox')->with('tipo', 'alert alert-warning') ->with('titulo', 'OPERAÇÃO INVÁLIDA') ->with('msg', $msg) ->with('acao', "/curso"); } $objCurso->delete();
29.VIEW REMOÇÃO DE CURSOS Diretório resources/views Adicionar o arquivo: cursoRemover.blade.php
INSTITUTO FEDERAL DO PARANÁ | Paranaguá Rua Antônio Carlos Rodrigues, 453 - Porto Seguro, Paranaguá - PR | 83215-750 – Brasil (17/21)
30. TESTANDO REMOÇÃO DE CURSOS
(Na tela de listagem de cursos → Botão “Remover”)
(Na tela de remoção de cursos → Botão “Sim”)
31. CRIANDO A CLASSE DE CONTROLE DAS TURMAS Terminal Ctrl + c (aborta a execução do artisan serve) Terminal php artisan make:controller TurmaController (criado em
INSTITUTO FEDERAL DO PARANÁ | Paranaguá Rua Antônio Carlos Rodrigues, 453 - Porto Seguro, Paranaguá - PR | 83215-750 – Brasil (18/21)
“app/Http/Controllers”)
Diretório app/Http/Controllers Alterar/Adicionar ao arquivo: TurmaController.php use Request; (alterar) use App\Turma; (adicionar) use App\Curso; (adicionar) public function listar() { } (adicionar) public function cadastrar() { } (adicionar) public function editar() { } (adicionar) public function salvar($id) { } (adicionar) public function remover($id) { } (adicionar) public function confirmar($id) { } (adicionar)
32.CRIANDO AS ROTAS PARA O CRUD DAS TURMAS Diretório routes/ Adicionar ao arquivo: web.php Route::get('/turma', 'TurmaController@listar'); Route::get('/turma/cadastrar', 'TurmaController@cadastrar'); Route::get('/turma/editar/{id}', 'TurmaController@editar'); Route::post('/turma/salvar/{id}', 'TurmaController@salvar'); Route::get('/turma/remover/{id}', 'TurmaController@remover'); Route::get('/turma/confirmar/{id}', 'TurmaController@confirmar');
33. CLASSE CONTROLE DE TURMAS → MÉTODO LISTAR Diretório app/Http/Controllers Adicionar ao arquivo: CursoController.php – Método: listar()
INSTITUTO FEDERAL DO PARANÁ | Paranaguá Rua Antônio Carlos Rodrigues, 453 - Porto Seguro, Paranaguá - PR | 83215-750 – Brasil (19/21)
$turmas = Turma::orderBy('nome')->get(); $cursos = Curso::select('id', 'nome')->get(); return view('turma')->with('turmas', $turmas) ->with('cursos', $cursos);
34. VIEW TURMAS Diretório resources/views Adicionar o arquivo: turma.blade.php
35. TESTANDO A VIEW TURMAS → LISTAR Diretório resources/views Alterar o arquivo: main.blade.php Criando o link De: <a href=" "> Para: <a href="/turma"> Terminal php artisan serve (iniciando aplicação novamente)
INSTITUTO FEDERAL DO PARANÁ | Paranaguá Rua Antônio Carlos Rodrigues, 453 - Porto Seguro, Paranaguá - PR | 83215-750 – Brasil (20/21)
ATIVIDADE
(20 – 25 minutos)
1. Codificar todos os métodos da classe de “TurmaController”; 2. Utilizar as “Views” disponibilizadas e implementar as funcionalidades:
alterar e remover Turmas;
AUTENTICAÇÃO – BÁSICO
1. CRIANDO AS CLASSES E VIEWS DE AUTENTICAÇÃO Terminal php artisan make:auth
Diretório – Classes de Controle app/Http/Controllers/Auth
Diretório – Views resources/views/auth
INSTITUTO FEDERAL DO PARANÁ | Paranaguá Rua Antônio Carlos Rodrigues, 453 - Porto Seguro, Paranaguá - PR | 83215-750 – Brasil (21/21)
2. DIFININDO AS ROTAS QUE REQUEREM AUTENTICAÇÃO Diretório routes/ Editar o arquivo: web.php Route::group(['middleware' => 'auth'], function() { Route::get('/turma', 'TurmaController@listar'); Route::get('/turma/cadastrar', 'TurmaController@cadastrar'); Route::get('/turma/editar/{id}', 'TurmaController@editar'); Route::post('/turma/salvar/{id}', 'TurmaController@salvar'); Route::get('/turma/remover/{id}', 'TurmaController@remover'); Route::get('/turma/confirmar/{id}', 'TurmaController@confirmar'); });
3. TENTANDO ACESSAR O MENU TURMAS (Ao selecionar o ícone “Turmas” no Menu Principal)
Top Related