Você está aqui: Laravel ::: Artigos e Tutorias ::: CRUD - CREATE, READ, UPDATE, DELETE

Como criar um CRUD completo em Laravel 8 - CRUD em Laravel usando PHP e MySQL (MariaDB) - Parte 3

Quantidade de visualizações: 2604 vezes
Na parte 2 deste tutorial sobre CRUD em Laravel usando PHP e MySQL (MariaDB) nós criamos uma rota de direcionamento do tipo recursos, ou seja, para um controlador LivroController que contém todos os métodos necessários para manipular o modelo (model) Livro.

Fizemos também toda a parte do CREATE do nosso CRUD. Dessa forma, a gravação do livro no banco de dados MySQL já está completo. Nessa terceira parte do tutorial nós vamos listar os livros já cadastrados e oferecer as opções para exibir os detalhes de um livro, editá-lo ou excluí-lo. Vamos começar com a listagem.

Como listar os livros já cadastrados

O primeiro passo para listar os livros cadastrados na tabela do banco de dados MySQL é acrescentar um método index() no controle LivroController. Abra o arquivo LivroController.php e modifique-o para a versão abaixo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<?php

namespace App\Http\Controllers;

use App\Models\Livro;
use Illuminate\Http\Request;

class LivroController extends Controller{
  // mostra a view listando os livros cadastrados
  public function index(){
    // obtém todos os livros cadastrados
    $livros = Livro::all();
    
    // direciona para a view e fornece um vetor
    // contendo os livros
    return view('livros.index', compact('livros'));
  }  

  // mostra a view para cadastrar um novo livro
  public function create(){
    return view('livros.create');
  }

  // recebe as informações do formulário e as grava
  // no banco de dados
  public function store(Request $request){
    // valida o formulário
    $request->validate([
      'titulo' => 'required',
      'autor' => 'required',
      'paginas' => 'required']);
    
    // obtém os valores do form
    Livro::create($request->all());
     
    // direciona para página cadastro novamente,
    // com uma mensagem de sucesso
    return redirect()->route('livros.create')
      ->with('mensagem', 'Livro salvo com sucesso.');
  }
}

?>


Veja que no método index() nós fazemos uma chamada ao método all() do Eloquent para obter todos os registros da tabela livros. Em seguida nós fornecemos o vetor retornado para a view index.

Vamos agora criar a view e aprender como obter a lista de livros enviada pelo controller e exibí-la.

Como listar na view os dados recebidos do controller LivroController

Vá até o diretório C:\xampp\htdocs\biblioteca\resources\views\livros e crie um arquivo chamado index.blade.php. Modifique o seu código para a listagem abaixo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<html>
<head>
  <meta charset="utf-8">
  <title>Biblioteca</title>
</head>
<body>

<h1>Livros Cadastrados</h1>

@if($status = Session::get('mensagem'))
  <h2>{{ $status }}</h2>
@endif

<h4><a href="{{ route('livros.create') }}">Cadastrar 
  Novo Livro</a></h4>

<table width="709" border="1" cellspacing="0" cellpadding="3">
  <tr>
    <td width="85" align="center"><strong>Id</strong></td>
    <td width="161" align="center"><strong>Título</strong></td>
    <td width="156" align="center"><strong>Autor</strong></td>
    <td width="98" align="center"><strong>Páginas</strong></td>
    <td width="167" align="center"><strong>Opções</strong></td>
  </tr>
  
  @foreach($livros as $livro)
    <tr>
      <td align="center">{{ $livro->id }}</td>
      <td>{{ $livro->titulo }}</td>
      <td>{{ $livro->autor }}</td>
      <td align="center">{{ $livro->paginas }}</td>
      <td align="center">
      
      <form action="{{ route('livros.destroy', $livro->id) }}" 
         method="post">
         <a href="{{ route('livros.show', 
           $livro->id) }}">Detalhes</a> | 
           <a href="{{ route('livros.edit', 
           $livro->id) }}">Editar</a>
      
         @csrf
         @method('DELETE')
      
         <button type="submit">Excluir</button>
      </form>
      
    </tr>
  @endforeach
  
</table>

</body>
</html>

Novamente eu mantive a formatação mínima para facilitar o entendimento do código. Já no topo da página nós temos um link que leva para a rota route('livros.create'). Isso permite cadastrar um novo livro.

Em seguida temos um laço @foreach($livros as $livro) que percorre o vetor recebido a partir do controller LivroController. Para cada item desse vetor nós criamos uma nova linha na tabela HTML. Note que já forneci as opções para manipular os livros individuais, a saber, Detalhes, Editar e Excluir.

Já temos tudo pronto! Direcione o seu navegador para a URL http://localhost/biblioteca/public/livros e teremos o seguinte resultado:



É claro que se você clicar em uma das opções exibidas para cada registro, um erro ocorrerá. Experimente, por exemplo, clicar no botão Excluir de algum dos livros listados. De imediato teremos a seguinte mensagem de erro:

BadMethodCallException
Method App\Http\Controllers\LivroController::destroy does not exist.
http://localhost/biblioteca/public/livros/5
Bad Method Call
Did you mean App\Http\Controllers\LivroController::store() ?

Isso aconteceu porque o nosso controller LivroController ainda não possui o método que permite excluir o livro. Vamos finalizar esta parte adicionando mais este método ao controller?

Como excluir um livro usando o método destroy() do LivroController

Abra novamente o arquivo LivroController.php e modifique-o para o código abaixo (note que vamos somente incluir o método destroy():

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<?php

namespace App\Http\Controllers;

use App\Models\Livro;
use Illuminate\Http\Request;

class LivroController extends Controller{
  // mostra a view listando os livros cadastrados
  public function index(){
    // obtém todos os livros cadastrados
    $livros = Livro::all();
    
    // direciona para a view e fornece um vetor
    // contendo os livros
    return view('livros.index', compact('livros'));
  }  

  // mostra a view para cadastrar um novo livro
  public function create(){
    return view('livros.create');
  }

  // recebe as informações do formulário e as grava
  // no banco de dados
  public function store(Request $request){
    // valida o formulário
    $request->validate([
      'titulo' => 'required',
      'autor' => 'required',
      'paginas' => 'required']);
    
    // obtém os valores do form
    Livro::create($request->all());
     
    // direciona para página cadastro novamente,
    // com uma mensagem de sucesso
    return redirect()->route('livros.create')
      ->with('mensagem', 'Livro salvo com sucesso.');
  }

  // método que permite excluir um livro
  public function destroy(Livro $livro){
    // vamos chamar o método delete() do Eloquent
    $livro->delete();
    
    // vamos chamar a view com uma mensagem de
    // de sucesso.
    return redirect()->route('livros.index')
      ->with('mensagem','Livro excluído com sucesso.');
  }
}

?>


Veja que, no método destroy(), nós fazemos uma chamada ao método delete() do Eloquent e redirecionamos o usuário para a view index, juntamente com uma mensagem indicando que o livro foi excluído com sucesso.

Vamos lá. Sua vez. Clique no botão Excluir de um dos livros e veja o resultado. Na parte 4 do tutorial nós vamos concluir as opções de mostrar os detalhes do livro e permitir alterá-lo. Até lá!

Leia a parte 4 aqui: Como criar um CRUD completo em Laravel 8 - CRUD em Laravel usando PHP e MySQL (MariaDB) - Parte 4

Link para compartilhar na Internet ou com seus amigos:

C ::: Dicas & Truques ::: Matemática e Estatística

Como calcular juros compostos e montante usando C

Quantidade de visualizações: 11347 vezes
O regime de juros compostos é o mais comum no sistema financeiro e portanto, o mais útil para cálculos de problemas do dia-a-dia. Os juros gerados a cada período são incorporados ao principal para o cálculo dos juros do período seguinte.

Chamamos de capitalização o momento em que os juros são incorporados ao principal. Após três meses de capitalização, temos:

1º mês: M = P .(1 + i)
2º mês: o principal é igual ao montante do mês anterior: M = P x (1 + i) x (1 + i)
3º mês: o principal é igual ao montante do mês anterior: M = P x (1 + i) x (1 + i) x (1 + i)

Simplificando, obtemos a fórmula:

M = P . (1 + i)^n

Importante: a taxa i tem que ser expressa na mesma medida de tempo de n, ou seja, taxa de juros ao mês para n meses.

Para calcularmos apenas os juros basta diminuir o principal do montante ao final do período:

J = M - P

Vejamos um exemplo:

Considerando que uma pessoa empresta a outra a quantia de R$ 2.000,00, a juros compostos, pelo prazo de 3 meses, à taxa de 3% ao mês. Quanto deverá ser pago de juros?

Veja o código C para a resolução:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(int argc, char *argv[])
{
  float principal = 2000.00;
  float taxa = 0.03; // 3%
  int meses = 3;

  float montante = principal * pow((1 + taxa), meses);
  float juros = montante - principal;

  printf("O total de juros a ser pago é: %f\n", juros);
  printf("O montante a ser pago é: %f", montante);

  printf("\n\n");
  system("pause");
  return 0;
}

Um outra aplicação interessante é mostrar mês a mês a evolução dos juros. Veja o código a seguir:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(int argc, char *argv[])
{
  float principal = 2000.00;
  float taxa = 0.03; // 3%
  int meses = 3;
  float anterior = 0.0;
  float montante;
  float juros;

  for(int i = 1; i <= meses; i++){
    montante = principal * pow((1 + taxa), i);
    juros = montante - principal - anterior;

    anterior += juros;

    printf("Mês: %d - Montante: %f - Juros %f\n", i, montante, juros);
  }

  printf("\n\n");
  system("pause");
  return 0;
}



Python ::: Desafios e Lista de Exercícios Resolvidos ::: Python Básico

Exercícios Resolvidos de Python - Como calcular salário líquido em Python - Calculando o salário líquido de um professor

Quantidade de visualizações: 809 vezes
Pergunta/Tarefa:

Escreva um programa Python que calcule o salário líquido de um professor. Seu programa deverá solicitar que o usuário informe o valor da hora aula (como float), o número de horas trabalhadas no mês (como inteiro) e o percentual de desconto do INSS (como float). Em seguida mostre o salário líquido, formatado de acordo com a moeda brasileira em vigor (na resolução eu usei o Real). Dica: Use locale.setlocale(locale.LC_ALL, 'pt_BR.UTF-8').

Sua saída deverá ser parecida com:

Informe o valor da hora aula: 28
Informe o número de horas trabalhadas no mês: 12
Informe o percentual de desconto do INSS: 8
Salário Bruto: R$ 336,00
Total de Descontos: R$ 26,88
Salário Líquido: R$ 309,12
Resposta/Solução:

Veja a resolução comentada deste exercício usando Python:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

import locale

# função principal do programa
def main():
  locale.setlocale(locale.LC_ALL, 'pt_BR.UTF-8')
  
  # vamos ler o valor do hora aula
  valor_hora_aula = float(input("Informe o valor da hora aula: "))
    
  # vamos ler o número de horas trabalhadas no mês
  horas_trabalhadas = int(input("Informe o número de horas trabalhadas no mês: "))
    
  # vamos ler o percentual de desconto do INSS
  percentual_desconto_inss = float(input("Percentual de desconto do INSS: "))
    
  # vamos calcular o salário bruto
  salario_bruto = valor_hora_aula * horas_trabalhadas
    
  # agora calculamos o total do desconto
  total_desconto = (percentual_desconto_inss / 100) * salario_bruto
    
  # finalmente calculamos o salário líquido
  salario_liquido = salario_bruto - total_desconto
    
  # mostramos o resultado
  print("Salário Bruto: R$ {0}".format(locale.currency(salario_bruto, 
    grouping=True, symbol=None)))
  print("Total de Descontos: R$ {0}".format(locale.currency(total_desconto, 
    grouping=True, symbol=None)))
  print("Salário Líquido: R$ {0}".format(locale.currency(salario_liquido, 
    grouping=True, symbol=None)))
  
if __name__== "__main__":
  main()



Java ::: Dicas & Truques ::: Formatação de datas, strings e números

Java para iniciantes - Como controlar a quantidade de casas decimais na exibição de um valor double ou float

Quantidade de visualizações: 26111 vezes
Este trecho de código mostra como usar o método printf() do Java 5.0 para definir a quantidade de casas decimais na exibição de um valor double.

Obs: Veja que há arredondamento durante a redução das casas decimais.

Eis o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

public class Estudos{
  public static void main(String[] args){
    double valor = 54.235344213;
    // exibe o valor original
    System.out.println(valor);
    
    // exibe o valor com duas casas decimais
    System.out.printf("%.2f\n", valor);
 
    // exibe o valor com quatro casas decimais
    System.out.printf("%.4f\n", valor);
   
    // exibe o valor com cinco casas decimais
    System.out.printf("%.5f\n", valor);
 
    // exibe o valor com uma casa decimal
    System.out.printf("%.1f", valor);
  }
}

Ao executar este código Java nós teremos o seguinte resultado:

54.235344213
54,24
54,2353
54,23534
54,2


C# ::: Coleções (Collections) ::: ArrayList

Como escrever um método C# que retorna uma ArrayList

Quantidade de visualizações: 17038 vezes
Estudantes C# ficam um pouco confusos quando solicitados a escrever funções que retornam objetos de classes. E essa confusão é maior ainda quando precisam retornar uma ArrayList, mais precisamente um objeto da classe ArrayList.

Esta dica mostra como isso pode ser feito. Veja que temos um método que define, em sua assinatura, que o tipo de retorno não é void (sem retorno) mas sim um objeto da classe ArrayList. No corpo deste método temos a criação da ArrayList propriamente dita, a adição de cinco inteiros e finalmente o uso da palavra-chave return para retornar o ArrayList já preenchido ao chamador do método.

Note que o método Main é responsável por efetuar uma chamada ao método, obter o ArrayList resultante e em seguida usar o laço foreach para exibir seus valores:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// método que retornará uma ArrayList
static ArrayList obterLista(){
  // Cria o ArrayList
  ArrayList lista = new ArrayList();

  // Adiciona 5 inteiros
  lista.Add(1);
  lista.Add(2);
  lista.Add(3);
  lista.Add(4);
  lista.Add(5);

  // retorna o ArrayList preenchido
  return lista;
}

static void Main(string[] args){
  // obtém um ArrayList preenchido a partir do
  // método obterLista
  ArrayList mLista = obterLista();

  // exibe os valores do ArrayList
  foreach (int valor in mLista){
    Console.Write("{0} ", valor);
  }

  // pausa o programa
  Console.ReadKey();
}



Java ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o seno de um número ou ângulo em Java usando o método sin() da classe Math

Quantidade de visualizações: 2711 vezes
Em geral, quando falamos de seno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função seno disponível nas linguagens de programação para calcular o seno de qualquer número, mesmo nossas aplicações não tendo nenhuma relação com trigonometria.

No entanto, é sempre importante entender o que é a função seno. Veja a seguinte imagem:



Veja que temos um triângulo retângulo com as medidas já calculadas para a hipotenusa e os dois catetos, assim como os ângulos entre eles.

Assim, o seno é a razão entre o cateto oposto (oposto ao ângulo theta) e a hipotenusa, ou seja, o cateto oposto dividido pela hipotenusa. Veja a fórmula:

\[\text{Seno} = \frac{\text{Cateto oposto}}{\text{Hipotenusa}} \]

Então, se dividirmos 20 por 36.056 (na figura eu arredondei) nós teremos 0.5547, que é a razão entre o cateto oposto e a hipotenusa (em radianos).

Agora, experimente calcular o arco-cosseno de 0.5547. O resultado será 0.9828 (em radianos). Convertendo 0.9828 radianos para graus, nós obtemos 56.31º, que é exatamente o ângulo em graus entre o cateto oposto e a hipotenusa na figura acima.

Pronto! Agora que já sabemos o que é seno na trigonometria, vamos entender mais sobre a função sin() da linguagem Java. Esta método, que faz parte da classe Math, recebe um valor numérico e retorna um valor, também numérico) entre -1 até 1 (ambos inclusos). Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

public class Estudos{
  public static void main(String args[]){
    System.out.println("Seno de 0 = " + Math.sin(0));
    System.out.println("Seno de 1 = " + Math.sin(1));
    System.out.println("Seno de 2 = " + Math.sin(2));
  }
} 

Ao executar este código Java nós teremos o seguinte resultado:

Seno de 0 = 0.0
Seno de 1 = 0.8414709848078965
Seno de 2 = 0.9092974268256817

Note que calculamos os senos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função seno mostrada abaixo:




Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 101 usuários muito felizes estudando em nosso site.