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 3Quantidade de visualizações: 2553 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: <?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'); } ...... 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: <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>...... 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(): <?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',...... 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: | |
VB.NET ::: VB.NET para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular vetor unitário em VB.NET - VB.NET para Física e EngenhariaQuantidade de visualizações: 330 vezes |
Um vetor unitário ou versor num espaço vetorial normado é um vetor (mais comumente um vetor espacial) cujo comprimento ou magnitude é 1. Em geral um vetor unitário é representado por um "circunflexo", assim: __$\hat{i}__$. O vetor normalizado __$\hat{u}__$ de um vetor não zero __$\vec{u}__$ é o vetor unitário codirecional com __$\vec{u}__$. O termo vetor normalizado é algumas vezes utilizado simplesmente como sinônimo para vetor unitário. Dessa forma, o vetor unitário de um vetor __$\vec{u}__$ possui a mesma direção e sentido, mas magnitude 1. Por magnitude entendemos o módulo, a norma ou comprimento do vetor. Então, vejamos a fórmula para a obtenção do vetor unitário: \[\hat{u} = \dfrac{\vec{v}}{\left|\vec{v}\right|}\] Note que nós temos que dividir as componentes do vetor pelo seu módulo de forma a obter o seu vetor unitário. Por essa razão o vetor nulo não possui vetor unitário, pois o seu módulo é zero, e, como sabemos, uma divisão por zero não é possível. Veja agora o código VB.NET que pede as coordenadas x e y de um vetor 2D ou R2 e retorna o seu vetor unitário: Imports System Module Program Sub Main(args As String()) ' vamos ler os valores x e y Console.Write("Informe o valor de x: ") Dim x = Double.Parse(Console.ReadLine()) Console.Write("Informe o valor de y: ") Dim y = Double.Parse(Console.ReadLine()) ' o primeiro passo é calcular a norma do vetor Dim norma = Math.Sqrt(Math.Pow(x, 2) + Math.Pow(y, 2)) ...... Ao executar este código VB.NET nós teremos o seguinte resultado: Informe o valor de x: -4 Informe o valor de y: 6 O vetor unitário é: (x = -0.5547001962252291; y = 0.8320502943378437 Veja agora uma modificação deste código para retornarmos o vetor unitário de um vetor 3D ou R3, ou seja, um vetor no espaço: Imports System Module Program Sub Main(args As String()) ' vamos ler os valores x, y e z Console.Write("Informe o valor de x: ") Dim x = Double.Parse(Console.ReadLine()) Console.Write("Informe o valor de y: ") Dim y = Double.Parse(Console.ReadLine()) Console.Write("Informe o valor de z: ") Dim z = Double.Parse(Console.ReadLine()) ' o primeiro passo é calcular a norma do vetor Dim norma = Math.Sqrt(Math.Pow(x, 2) + Math.Pow(y, 2) + ...... Ao executarmos este novo código nós teremos o seguinte resultado: Informe o valor de x: 3 Informe o valor de y: 7 Informe o valor de z: 5 O vetor unitário é: (x = 0.329292779969071; y = 0.7683498199278324; z = 0.5488212999484517 |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de C - Declarar um vetor de 10 elementos e usar o laço for para solicitar ao usuário que informe os valores dos elementos do vetorQuantidade de visualizações: 13702 vezes |
Exercício Resolvido de C - Declarar um vetor de 10 elementos e usar o laço for para solicitar ao usuário que informe os valores dos elementos do vetor Pergunta/Tarefa: Escreva um programa C que declara um vetor (array) de 10 elementos do tipo int. Em seguida use um laço for para solicitar ao usuário que informe 10 valores inteiros e armazene tais valores nos elementos do vetor: Dica: Use a função scanf() para obter a entrada do usuário. Resposta/Solução: Veja abaixo a resolução completa para esta tarefa: #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { // vamos declarar um vetor de 10 inteiros int valores[10]; int i; // agora vamos solicitar ao usuário que informe os 10 valores para // os elementos do vetor. O mais recomendável neste caso é usar um // laço for que repetirá 10 vezes e, a cada repetição, solicitaremos // um valor for(i = 0; i < 10; i++){ printf("Informe o valor %d: ", (i + 1)); ...... |
JavaScript ::: Dicas & Truques ::: Tratamento de Erros |
Como retornar o nome ou tipo de exceção de um erro em JavaScript usando a propriedade name do objeto ErrorQuantidade de visualizações: 6713 vezes |
Em várias situações nós precisamos saber o nome do tipo de erro de tempo de execução em JavaScript. Para isso nós podemos usar a propriedade name do objeto Error. Veja um código JavaScript completo demonstrando o seu uso: <!doctype html> <html> <head> <title>Estudos JavaScript</title> </head> <body> <script language="javascript"> // o trecho de código a seguir vai provocar // um erro de tempo de execução em JavaScript ...... Ao executar este código JavaScript nós teremos o seguinte resultado: Tipo do erro: ReferenceError A propriedade name do objeto Error pode retornar os seguintes valores: EvalError - Um erro provocado pela função eval. RangeError - Um erro provocado por um número fora da faixa permitida. ReferenceError - Uma referência ilegal provocou o erro. SyntaxError - Um erro de sintáxe. TypeError - Um erro provocado por uma conversão de tipos. URIError - Provocado por um erro na função encodeURI(). |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercícios Resolvidos de Java - Como criar um conversor de moedas em Java - Um programa Java para converter de Real para Dólar e de Dólar para RealQuantidade de visualizações: 1505 vezes |
Pergunta/Tarefa: Escreva um programa Java para converter de Real para Dólar e vice-versa. Seu programa deverá ler o valor a ser convertido e a opção de conversão, ou seja, se o usuário quer converter de Real para Dólar ou se quer converter de Dólar para Real. Em seguida mostre o valor convertido. Você pode pedir também a cotação do Dólar ou já deixar definido no código. Na resolução eu fixei a cotação no código mesmo, tomando como base a cotação do Dólar na data 20/02/2023. Sua saída deverá ser parecida com: Valor a ser convertido: 7 1. Converter de Real para Dólar 2. Converter de Dólar para Real Sua opção: 1 O valor convertido para Dólar é: $ 1,28 Valor a ser convertido: 1 1. Converter de Real para Dólar 2. Converter de Dólar para Real Sua opção: 2 O valor convertido para Real é: R$ 5,46 Veja a resolução comentada deste exercício usando Java: package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // vamos registrar aqui a cotaçao do dólar double cotacao_dolar = 5.4613; // 20/02/2023 // valor informado e valor convertido double valor, valor_convertido; // para ler a opção do usuário int opcao; // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos pedir para o usuário informar o valor a ser convertido System.out.print("Valor a ser convertido: "); valor = Double.parseDouble(entrada.nextLine()); // vamos mostrar as opções de conversão System.out.println("\n1. Converter de Real para Dólar"); System.out.println("2. Converter de Dólar para Real"); ...... |
Portugol ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercício Resolvido de Portugol - Como testar se um ano é bissexto em Portugol - Um programa que lê um ano com quatro dígitos e informa se ele é bissexto ou nãoQuantidade de visualizações: 846 vezes |
Pergunta/Tarefa: Chama-se ano bissexto o ano ao qual é acrescentado um dia extra, ficando ele com 366 dias, um dia a mais do que os anos normais de 365 dias, ocorrendo a cada quatro anos (exceto anos múltiplos de 100 que não são múltiplos de 400). Isto é feito com o objetivo de manter o calendário anual ajustado com a translação da Terra e com os eventos sazonais relacionados às estações do ano. O último ano bissexto foi 2012 e o próximo será 2016. Um ano é bissexto se ele for divisível por 4 mas não por 100, ou se for divisível por 400. Escreva um programa Portugol que pede ao usuário um ano com quatro dígitos e informa se ele é bissexto ou não. Sua saída deverá ser parecida com: Informe o ano: 2024 O ano informado é bissexto. Veja a resolução comentada deste exercício usando Portugol Webstudio: // Como testar se um ano é bissexto em Portugol programa { funcao inicio() { // variáveis usadas na resolução do problema inteiro ano // vamos solicitar que o usuário informe um ano escreva("Informe o ano: ") leia(ano) ...... |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Portugol |
Veja mais Dicas e truques de Portugol |
Dicas e truques de outras linguagens |
Quem Somos |
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
|
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..
|
Linguagens Mais Populares |
1º lugar: Java |