Pular para o conteúdo

Criar Layout no Laravel

Como usar section, yield e extends com Laravel

  • dentro do diretório views, criar diretório layouts

  • após criar o template com yield, nas views utilizar extends e section

alt text

alt text

alt text

Como incluir Bootstrap no Laravel

  • salvar os arquivos no projeto de forma local, dentro de public/css e public/js

  • incluir os arquivos no arquivo de layout

alt text

Como incluir o layout SB Admin

  • ajustes no arquivo de layout utilizando o SB Admin (com bootstrap 5)

Como incluir a biblioteca de ícone Font Awesome

  • incluindo arquivos css e js na pasta public/css e public/js

Criar o layout da página listar

Criar o layout da página visualizar

Criar o layout do formulário cadastrar e editar

Paginação no Laravel com Bootstrap 5

  • ao incluir bootstrap no projeto, a paginação padrão do laravel fica desconfigurada

  • necessário utilizar laravel pagination

  • app/Providers/AppServiceProvider.php

alt text

  • limitar a quantidade de páginas antes e depois da página atual

alt text

alt text

Apresentar e ocultar coluna com Bootstrap

  • responsividade (classes html bootstrap)

Alterar layout do administrativo

Deixar selecionado o item de menu - 04/03/24 (H)

  • incluir nas controllers, nos métodos que carregam/retornam view, um array com uma informação para validar no sidebar do arquivo admin.blade.php. Se existir a informação na view, será carregado a classe css ‘active’ para destacar na sidebar

  • não é necessário incluir nos métodos onde retorna redirect.

alt text

alt text

alt text

Instalar Node.js no Windows - 04/03/24 (H)

Incluir Bootstrap, CSS e JavaScript com Vite - 04/03/24 (H)

  • não há como visualizar o código fonte dos arquivos css/js ao utilizar vite

  • instalar as dependências do Node.js (arquivo package.json)

npm install

alt text

  • instalar bootstrap c/ vite
npm i --save bootstrap @popperjs/core
  • instalar dependência adicional sass
npm i --save-dev sass
  • incluir o framework bootstrap no arquivo bootstrap.js

alt text

  • após isso, remover os includes bootstrap css e js no arquivo admin.blade.php (tag link e tag script)

  • na sequência, incluir o vite no arquivo admin.blade.php

alt text

  • agora como temos dependências do node no projeto, necessário executar server de desenvolvimento npm com o comando abaixo
npm run dev
  • agora, os arquivos css/js não serão mais públicos. Apagar arquivos css do bootstrap da pasta public/css e public/js

  • transferindo os arquivos css da pasta public (disponível para o usuário visualizar) para a pasta resources (não será mais disponível para o usuário)

alt text

alt text

  • apagar o arquivo restante all.min.js da biblioteca fontawesome, dentro da pasta public/js

  • instalar a biblioteca fontawesome com npm

  • ‘—save’ indica que a dependência será considerada no arquivo package.json pois é uma dependência que será utilizada em produção

npm i --save @fortawesome/fontawesome-free

alt text

  • após toda a configuração das dependências com vite (css, js, fontawesome), remover as tags link e script do arquivo admin.blade.php

alt text

alt text

  • após a instalação do fontawesome via npm, necessário importar no arquivo resources/css/app.css

alt text

Personalizar logo do site

  • criar pasta images dentro da pasta public e inserir um arquivo favicon.ico

  • incluir a imagem dentro de layouts/admin.blade.php

alt text

Criar máscara para o campo moeda - 04/03/24 (H)

  • dentro da pasta resources/js, criar um arquivo scripts_admin.js, importar o novo arquivo dentro de app.js

  • após configurar o js, banco dropado (DROP database u893612743_laravel10;) e executado os comandos abaixo

php artisan migrate
php artisan db:seed
  • após executar os comandos, tentamos cadastrar novo curso, e tivemos o erro abaixo

alt text

  • isso acontece pois configuramos a parte do frontend (javascript) da máscara para o campo moeda, porém o backend está tentando cadastrar um número com vírgula.

  • necessário ajustar na controller método cadastrar (store e update)

alt text

  • o campo preco está cadastrado como double(8, 2) no banco de dados, abaixo incluir validação de quantidade caracteres em CursoRequest.php

  • incluído begin transaction, commit/rollback e try catch nos métodos store e update do CursoController e AulaController

  • incluído log em todos os métodos restantes

Criar componente alerta - 05/03/24 (W)

  • criar componente laravel dentro da pasta resources/views/components

alt text

Criar a página dashboard

  • incluir rota dashboard no arquivo routes/web.php

  • criar controller DashboardController

  • criar pasta dashboard dentro de resources/views e arquivo index.blade.php

Criar o CRUD dos usuários - 05/03/24 (H)

  • criar as rotas relacionadas a usuários

  • criar a controller UsuarioController (copiada do arquivo CursoController)

  • renomear model User para Usuario (pois as controllers estão em pt-br)

  • ajustar os métodos da controller UsuarioController

  • criar o UsuarioRequest

  • criar as views dentro de uma nova pasta chamada usuarios

  • ajustar no componente de layout (admin.blade.php) o item de menu usuarios

alt text

  • necessário criar uma Traits para utilizar timestamp personalizado pt-br para a model Usuario, pois não conseguimos utilizar extends para mais de 1 classe. Obs: necessário ajustar os arquivos/models BaseTimestamp, Curso e Aula

alt text

  • criar seeder UsuarioSeeder.php (copia de CursoSeeder)

  • dentro do arquivo seeder (UsuarioSeeder.php) é necessário utilizar Hash para gerar a senha criptograda

alt text

  • para conseguir executar o UsuarioSeeder com o comando php artisan db:seed, necessário incluir dentro do arquivo DatabaseSeeder.php

alt text

  • já nos métodos da controller (UserController.php), não é necessário utilizar Hash para gerar a senha criptografada

alt text

  • é possível validar o formulário no próprio método, ao invés de validar no arquivo Request (exemplo UserRequest.php)

alt text

********************** OBS: FEITO OS MÉTODOS INDEX E SHOW

  • incluído em UsuarioController.php os métodos create, store, edit, update, editPassword, updatePassword, destroy

  • incluído auditable na model Usuario.php para salvar as informações de log no banco de dados