Você está na página 1de 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') ===


'93b54496392c062774670ac18b134c3b3a95e5a5e5c8f1a9f115f203b75b
f9a129d5daa8ba6a13e2cc8a1da0806388a8') { 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 (1/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 (2/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 (3/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 (4/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 (5/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 (6/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 (7/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 (8/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 (9/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 (10/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 (11/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 (12/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 (13/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 (14/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 (15/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 (16/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 (17/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 (18/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 (19/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 (20/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)

INSTITUTO FEDERAL DO PARANÁ | Paranaguá


Rua Antônio Carlos Rodrigues, 453 - Porto Seguro, Paranaguá - PR | 83215-750 – Brasil (21/21)

Você também pode gostar