SlideShare uma empresa Scribd logo
Thyago Maia Tavares de Farias
 As configurações de
banco de dados no
Laravel ficam
armazenadas na pasta
config, arquivo
database.php;
 Como exemplo, edite o
vetor connections do
arquivo database.php com
as configurações
apresentadas ao lado
Crie a base de dados
“laravel” a partir do
phpmyadmin;
Abra o arquivo .env
localizado na pasta raiz
do projeto Laravel e
edite as configurações
padrão de conexão;
Funcionalidade nativa do Laravel;
O primeiro framework PHP a se preocupar com isso;
Algo que era disponível apenas no Ruby!
Permite a criação de classes que permitem inicializar
(subir) bancos de dados de aplicações e remover
informações de bancos quando necessário;
Facilita a sincronização de dados em banco;
Exemplo: Vá no seu terminal, acesse a partir dele a pasta
C:xampphtdocsnomeProjeto e digite o comando:
php artisan make:migration tabela_livro
Uma nova migration com o nome xxxx_tabela_livro será
criada em database/migrations/;
 OBS.: Remova as migrations de exemplo que constam na
pasta database/migrations/
 Continuando o exemplo, na migration tabela_livro, edite só os métodos
up e down:
public function up() {
Schema::create(‘livro’, function(Blueprint $tabela) {
$tabela->integer(‘id’, true);
$tabela->string(‘titulo’, 100);
$tabela->text(‘descricao’);
$tabela->date(‘data_publicacao’);
});
}
Continuando o exemplo, na migration
tabela_livro, edite só os métodos up e down:
public function down() {
Schema::drop(‘livro’);
}
Exemplo: Vá no seu terminal, acesse a partir dele a pasta
C:xampphtdocsnomeProjeto e digite o comando:
php artisan migrate
Quando o comando for concluído, abra o phpmyadmin,
banco laravel e verifique se a tabela livros foi criada com
sucesso;
Exemplo: Para executar o método down da migration, vá
no seu terminal, acesse a partir dele a pasta
C:xampphtdocsnomeProjeto e digite o comando:
php artisan migrate:reset
Quando o comando for concluído, abra o phpmyadmin,
banco laravel e verifique se a tabela livros foi excluída com
sucesso;
Chegou a hora de criar nossas classes Model!!
O Laravel trabalha com ORM (Object Relacional
Mapping), que se encarrega de abstrair a conversão
das estruturas de tabelas de BD e instruções SQL
para o mundo da orientação a objetos;
O Eloquent implementa o padrão Active Record,
em que cada tabela deve possuir uma classe
correspondente (um Model MVC);
 Exemplo: Vá para a pasta app do projeto laravel e crie a pasta
Models (infelizmente o Laravel não cria essa pasta por padrão);
 Vá no seu terminal, acesse a partir dele a pasta
C:xampphtdocsnomeProjeto e digite o comando:
php artisan make:model Models/LivroModel
 Uma nova model com o nome LivroModel será criada em
app/Models/;
 Continuando o exemplo, edite a Model LivroModel:
Class LivroModel extends Model {
protected $table = ‘livro’;
protected $primaryKey = ‘id’;
protected $fillable = [
‘titulo’, ‘descricao’, ‘data_publicacao’
];
public $timestamps = false;
}
Para testar nossas consultas, acesse o
arquivo de rotas e registre a seguinte rota:
Route::resource(‘livro', ‘LivroController’);
Agora, vá no seu terminal, acesse a partir dele a pasta
C:xampphtdocsnomeProjeto e digite o comando:
php artisan make:controller LivroController --resource
Uma nova controller com o nome LivroController será
criada em app/Http/Controllers/;
Continuando o exemplo, inclua uma
importação na classe LivroController:
use AppModelsLivroModel;
Em seguida, edite o método index da classe
LivroController:
public function index() {
return LivroModel::all();
}
Por fim, abra o phpmyadmin, acesse a tabela
livros, insira alguns livros (clicando em
Insere), abra o navegador e acesse
http://localhost:8000/livro/
Um select * from livros será executado
automaticamente e apresentado na tela!
 Edite o exemplo anterior e faça com que o projeto Laravel
também permita inserir, editar e excluir livros, além de exibir
informações de um livro específico;
 A sintaxe para os métodos de Model para as devidas ações
CRUD estão disponíveis em
https://laravel.com/docs/5.8/eloquent (Inserting & Updating
Models, Retrieving Single Models e Deleting Models);
 Faça os registros de rota e a criação de Views necessárias para
cada operação;
 Observação:
 Para criar um método que possa capturar os inputs do formulário,
utilize um objeto da classe Request como parâmetro do método.
Exemplo:
public function postNome(Request $request) {
printf(“Nome: %s", ($request->input('nome')));
}
 Lembre-se também que cada método CRUD criado em um controller
de recurso pode ser executado automaticamente, dependendo da
requisição HTTP realizada e do formato da URI:
Tipo URI Ação
GET /livro index
GET /livro/create create
POST /livro store
GET /livro/{id} show
GET /livro/{id}/edit edit
PUT/PATCH /livro/{id} update
DELETE /livro/{id} destroy
 Lembre-se também que cada método CRUD criado em um controller de recurso
tem uma funcionalidade específica sugerida:
 index – Método que chamará uma view para a exibição de dados;
 create – Método que chamará uma view para o formulário de inserção de dados;
 store – Método que executará a inserção de dados a partir de um Model;
 show - Método que chamará uma view para a exibição de um recurso específico;
 edit - Método que chamará uma view para o formulário de edição de dados;
 update - Método que executará a edição de dados a partir de um Model;
 destroy – Método que executará a exclusão de dados a partir de um Model;
 Exemplo: Edite o método store da classe LivroController:
public function store(Request $request) {
$livro = new LivroModel;
$livro->titulo = $request->input(‘titulo’);
$livro->descricao = $request->input(‘descricao’);
$livro->data_publicacao = $request-
>input(‘data_publicacao’);
$livro->save();
}
 Exemplo: Edite o método edit da classe LivroController:
public function edit($id) {
$livro = LivroModel::find($id);
return view(‘editar’, [
‘id’ => $id,
‘titulo’ => $livro->titulo,
‘descricao’ => $livro->descricao,
‘data_publicacao’ => $livro->data_publicacao
]);
}
 Exemplo: Edite o método update da classe LivroController:
public function update(Request $request, $id) {
$livro = LivroModel::find($id);
$livro->titulo = $request->input(‘titulo’);
$livro->descricao = $request->input(‘descricao’);
$livro->data_publicacao = $request-
>input(‘data_publicacao’);
$livro->save();
}
Exemplo: Edite o método show da classe
LivroController:
public function show($id) {
$livro = LivroModel::find($id);
printf($livro);
}
Exemplo: Edite o método destroy da classe
LivroController:
public function destroy($id) {
$livro = LivroModel::find($id);
$livro->delete();
}

Mais conteúdo relacionado

Mais procurados

Desenvolvimento de sistemas web com PHP Frameworks - Aula 3
Desenvolvimento de sistemas web com PHP Frameworks - Aula 3Desenvolvimento de sistemas web com PHP Frameworks - Aula 3
Desenvolvimento de sistemas web com PHP Frameworks - Aula 3
Thyago Maia
 
Programação Orientada a Objetos (POO) com PHP - Parte 1
Programação Orientada a Objetos (POO) com PHP - Parte 1Programação Orientada a Objetos (POO) com PHP - Parte 1
Programação Orientada a Objetos (POO) com PHP - Parte 1
Israel Messias
 
Treinamento Básico de Django
Treinamento Básico de DjangoTreinamento Básico de Django
Treinamento Básico de Django
Leandro Zanuz
 
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação WebDjango Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
antonio sérgio nogueira
 
PHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e QuerystringPHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e Querystring
Daniel Brandão
 
Curso de Java (Parte 5)
Curso de Java (Parte 5)Curso de Java (Parte 5)
Curso de Java (Parte 5)
Mario Sergio
 
Python e Django
Python e DjangoPython e Django
Python e Django
pugpe
 
Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3
Régis Eduardo Weizenmann Gregol
 
JasperReports Tecnicas de geracao_de_relatorios1
JasperReports  Tecnicas de geracao_de_relatorios1JasperReports  Tecnicas de geracao_de_relatorios1
JasperReports Tecnicas de geracao_de_relatorios1
Sliedesharessbarbosa
 
Programando php com excelência
Programando php com excelênciaProgramando php com excelência
Programando php com excelência
Marcus Vinicius Leandro
 
Introdução à MEAN Stack
Introdução à MEAN StackIntrodução à MEAN Stack
Introdução à MEAN Stack
Bruno Catão
 
Python 07
Python 07Python 07
Python 07
Bruno Catão
 
PHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e SessoesPHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e Sessoes
Daniel Brandão
 
Django: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosDjango: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutos
Rodrigo Nossal
 
Criando websites a jato com Django
Criando websites a jato com DjangoCriando websites a jato com Django
Criando websites a jato com Django
Marcos Petry
 
Introdução ao Ruby On Rails
Introdução ao Ruby On RailsIntrodução ao Ruby On Rails
Introdução ao Ruby On Rails
Milton Moura
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web Application
Mario Sergio
 
RubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoRubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direito
Cezinha Anjos
 
PHP e MySQL para iniciantes
PHP e MySQL para iniciantesPHP e MySQL para iniciantes
PHP e MySQL para iniciantes
Eduardo Mendes
 
Python 06
Python 06Python 06
Python 06
Bruno Catão
 

Mais procurados (20)

Desenvolvimento de sistemas web com PHP Frameworks - Aula 3
Desenvolvimento de sistemas web com PHP Frameworks - Aula 3Desenvolvimento de sistemas web com PHP Frameworks - Aula 3
Desenvolvimento de sistemas web com PHP Frameworks - Aula 3
 
Programação Orientada a Objetos (POO) com PHP - Parte 1
Programação Orientada a Objetos (POO) com PHP - Parte 1Programação Orientada a Objetos (POO) com PHP - Parte 1
Programação Orientada a Objetos (POO) com PHP - Parte 1
 
Treinamento Básico de Django
Treinamento Básico de DjangoTreinamento Básico de Django
Treinamento Básico de Django
 
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação WebDjango Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
 
PHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e QuerystringPHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e Querystring
 
Curso de Java (Parte 5)
Curso de Java (Parte 5)Curso de Java (Parte 5)
Curso de Java (Parte 5)
 
Python e Django
Python e DjangoPython e Django
Python e Django
 
Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3
 
JasperReports Tecnicas de geracao_de_relatorios1
JasperReports  Tecnicas de geracao_de_relatorios1JasperReports  Tecnicas de geracao_de_relatorios1
JasperReports Tecnicas de geracao_de_relatorios1
 
Programando php com excelência
Programando php com excelênciaProgramando php com excelência
Programando php com excelência
 
Introdução à MEAN Stack
Introdução à MEAN StackIntrodução à MEAN Stack
Introdução à MEAN Stack
 
Python 07
Python 07Python 07
Python 07
 
PHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e SessoesPHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e Sessoes
 
Django: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosDjango: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutos
 
Criando websites a jato com Django
Criando websites a jato com DjangoCriando websites a jato com Django
Criando websites a jato com Django
 
Introdução ao Ruby On Rails
Introdução ao Ruby On RailsIntrodução ao Ruby On Rails
Introdução ao Ruby On Rails
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web Application
 
RubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoRubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direito
 
PHP e MySQL para iniciantes
PHP e MySQL para iniciantesPHP e MySQL para iniciantes
PHP e MySQL para iniciantes
 
Python 06
Python 06Python 06
Python 06
 

Semelhante a Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1

3260 php truquesmagicos %281%29
3260 php truquesmagicos %281%293260 php truquesmagicos %281%29
3260 php truquesmagicos %281%29
Juliana Nascimento
 
3260 php truquesmagicos
3260 php truquesmagicos3260 php truquesmagicos
3260 php truquesmagicos
Juliana Nascimento
 
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
Dsi   015 - poo e php - conexão com bancos de dados usando pdoDsi   015 - poo e php - conexão com bancos de dados usando pdo
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
Jorge Luís Gregório
 
Slide 01 introdução ao php e ao code igniter
Slide 01   introdução ao php e ao code igniterSlide 01   introdução ao php e ao code igniter
Slide 01 introdução ao php e ao code igniter
Raniere de Lima
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Arlindo Santos
 
Crud
CrudCrud
Programação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com DojoProgramação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com Dojo
fabioginzel
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6
Erisvaldo Junior
 
Fundamentos da Programação PHP OO - Aula 3
Fundamentos da Programação PHP OO - Aula 3Fundamentos da Programação PHP OO - Aula 3
Fundamentos da Programação PHP OO - Aula 3
Thyago Maia
 
Oficial
OficialOficial
hibernate annotation
hibernate annotationhibernate annotation
hibernate annotation
eduardo dias
 
Cake Php
Cake PhpCake Php
Cake Php
Laura Lopes
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.
Vinícius de Paula
 
Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01
Maurício Linhares
 
Ruby & Rails
Ruby & RailsRuby & Rails
Ruby & Rails
Sergio Henrique
 
Banco de dadados MySQL com PHP
Banco de dadados MySQL com PHPBanco de dadados MySQL com PHP
Banco de dadados MySQL com PHP
Leonardo Soares
 
ZF Básico - 5. Modelo
ZF Básico - 5. ModeloZF Básico - 5. Modelo
ZF Básico - 5. Modelo
Marcos Bezerra
 
Como criar um plugin para WordPress
Como criar um plugin para WordPressComo criar um plugin para WordPress
Como criar um plugin para WordPress
Leandrinho Vieira
 
Workshop Django Framework - 30/10/2018
Workshop Django Framework - 30/10/2018Workshop Django Framework - 30/10/2018
Workshop Django Framework - 30/10/2018
Rafael Sales Pavarina
 
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernateDesenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Vitor Silva
 

Semelhante a Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1 (20)

3260 php truquesmagicos %281%29
3260 php truquesmagicos %281%293260 php truquesmagicos %281%29
3260 php truquesmagicos %281%29
 
3260 php truquesmagicos
3260 php truquesmagicos3260 php truquesmagicos
3260 php truquesmagicos
 
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
Dsi   015 - poo e php - conexão com bancos de dados usando pdoDsi   015 - poo e php - conexão com bancos de dados usando pdo
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
 
Slide 01 introdução ao php e ao code igniter
Slide 01   introdução ao php e ao code igniterSlide 01   introdução ao php e ao code igniter
Slide 01 introdução ao php e ao code igniter
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHP
 
Crud
CrudCrud
Crud
 
Programação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com DojoProgramação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com Dojo
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6
 
Fundamentos da Programação PHP OO - Aula 3
Fundamentos da Programação PHP OO - Aula 3Fundamentos da Programação PHP OO - Aula 3
Fundamentos da Programação PHP OO - Aula 3
 
Oficial
OficialOficial
Oficial
 
hibernate annotation
hibernate annotationhibernate annotation
hibernate annotation
 
Cake Php
Cake PhpCake Php
Cake Php
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.
 
Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01
 
Ruby & Rails
Ruby & RailsRuby & Rails
Ruby & Rails
 
Banco de dadados MySQL com PHP
Banco de dadados MySQL com PHPBanco de dadados MySQL com PHP
Banco de dadados MySQL com PHP
 
ZF Básico - 5. Modelo
ZF Básico - 5. ModeloZF Básico - 5. Modelo
ZF Básico - 5. Modelo
 
Como criar um plugin para WordPress
Como criar um plugin para WordPressComo criar um plugin para WordPress
Como criar um plugin para WordPress
 
Workshop Django Framework - 30/10/2018
Workshop Django Framework - 30/10/2018Workshop Django Framework - 30/10/2018
Workshop Django Framework - 30/10/2018
 
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernateDesenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
 

Mais de Thyago Maia

Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1
Thyago Maia
 
Programação Dinâmica para Web - Aula 1
Programação Dinâmica para Web - Aula 1Programação Dinâmica para Web - Aula 1
Programação Dinâmica para Web - Aula 1
Thyago Maia
 
Metodologia e Linguagem de Programação Avançada - Aula 1
Metodologia e Linguagem de Programação Avançada - Aula 1Metodologia e Linguagem de Programação Avançada - Aula 1
Metodologia e Linguagem de Programação Avançada - Aula 1
Thyago Maia
 
Desenvolvimento Web com PHP - Aula 2
Desenvolvimento Web com PHP - Aula 2Desenvolvimento Web com PHP - Aula 2
Desenvolvimento Web com PHP - Aula 2
Thyago Maia
 
Desenvolvimento Web com PHP - Aula 1
Desenvolvimento Web com PHP - Aula 1Desenvolvimento Web com PHP - Aula 1
Desenvolvimento Web com PHP - Aula 1
Thyago Maia
 
Fundamentos da Programação PHP OO - Aula 2
Fundamentos da Programação PHP OO - Aula 2Fundamentos da Programação PHP OO - Aula 2
Fundamentos da Programação PHP OO - Aula 2
Thyago Maia
 
Fundamentos da Programação PHP OO - Aula 1
Fundamentos da Programação PHP OO - Aula 1Fundamentos da Programação PHP OO - Aula 1
Fundamentos da Programação PHP OO - Aula 1
Thyago Maia
 
Mantenha sua Privacidade e Segurança na Web com o Tails
Mantenha sua Privacidade e Segurança na Web com o TailsMantenha sua Privacidade e Segurança na Web com o Tails
Mantenha sua Privacidade e Segurança na Web com o Tails
Thyago Maia
 

Mais de Thyago Maia (8)

Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1
 
Programação Dinâmica para Web - Aula 1
Programação Dinâmica para Web - Aula 1Programação Dinâmica para Web - Aula 1
Programação Dinâmica para Web - Aula 1
 
Metodologia e Linguagem de Programação Avançada - Aula 1
Metodologia e Linguagem de Programação Avançada - Aula 1Metodologia e Linguagem de Programação Avançada - Aula 1
Metodologia e Linguagem de Programação Avançada - Aula 1
 
Desenvolvimento Web com PHP - Aula 2
Desenvolvimento Web com PHP - Aula 2Desenvolvimento Web com PHP - Aula 2
Desenvolvimento Web com PHP - Aula 2
 
Desenvolvimento Web com PHP - Aula 1
Desenvolvimento Web com PHP - Aula 1Desenvolvimento Web com PHP - Aula 1
Desenvolvimento Web com PHP - Aula 1
 
Fundamentos da Programação PHP OO - Aula 2
Fundamentos da Programação PHP OO - Aula 2Fundamentos da Programação PHP OO - Aula 2
Fundamentos da Programação PHP OO - Aula 2
 
Fundamentos da Programação PHP OO - Aula 1
Fundamentos da Programação PHP OO - Aula 1Fundamentos da Programação PHP OO - Aula 1
Fundamentos da Programação PHP OO - Aula 1
 
Mantenha sua Privacidade e Segurança na Web com o Tails
Mantenha sua Privacidade e Segurança na Web com o TailsMantenha sua Privacidade e Segurança na Web com o Tails
Mantenha sua Privacidade e Segurança na Web com o Tails
 

Último

0002_matematica_6ano livro de matemática
0002_matematica_6ano livro de matemática0002_matematica_6ano livro de matemática
0002_matematica_6ano livro de matemática
Giovana Gomes da Silva
 
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxSlides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
.Template .padrao .slides .TCC .2024 ppt
.Template .padrao .slides .TCC .2024 ppt.Template .padrao .slides .TCC .2024 ppt
.Template .padrao .slides .TCC .2024 ppt
IslanderAndrade
 
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Biblioteca UCS
 
Sinais de pontuação
Sinais de pontuaçãoSinais de pontuação
Sinais de pontuação
Mary Alvarenga
 
Funções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prismaFunções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prisma
djincognito
 
Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
TomasSousa7
 
livro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdflivro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdf
cmeioctaciliabetesch
 
Fernão Lopes. pptx
Fernão Lopes.                       pptxFernão Lopes.                       pptx
Fernão Lopes. pptx
TomasSousa7
 
Redação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptxRedação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptx
DECIOMAURINARAMOS
 
Especialidade - Animais Ameaçados de Extinção(1).pdf
Especialidade - Animais Ameaçados de Extinção(1).pdfEspecialidade - Animais Ameaçados de Extinção(1).pdf
Especialidade - Animais Ameaçados de Extinção(1).pdf
DanielCastro80471
 
O que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdfO que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdf
Pastor Robson Colaço
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
RenanSilva991968
 
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdfPowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
1000a
 
Atividade letra da música - Espalhe Amor, Anavitória.
Atividade letra da música - Espalhe  Amor, Anavitória.Atividade letra da música - Espalhe  Amor, Anavitória.
Atividade letra da música - Espalhe Amor, Anavitória.
Mary Alvarenga
 
Famílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do AssaréFamílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do Assaré
profesfrancleite
 
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de CarvalhoO sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
analuisasesso
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
RenanSilva991968
 
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdf
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdfCaderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdf
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdf
enpfilosofiaufu
 
Sócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slidesSócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slides
jbellas2
 

Último (20)

0002_matematica_6ano livro de matemática
0002_matematica_6ano livro de matemática0002_matematica_6ano livro de matemática
0002_matematica_6ano livro de matemática
 
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxSlides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
 
.Template .padrao .slides .TCC .2024 ppt
.Template .padrao .slides .TCC .2024 ppt.Template .padrao .slides .TCC .2024 ppt
.Template .padrao .slides .TCC .2024 ppt
 
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
 
Sinais de pontuação
Sinais de pontuaçãoSinais de pontuação
Sinais de pontuação
 
Funções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prismaFunções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prisma
 
Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
 
livro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdflivro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdf
 
Fernão Lopes. pptx
Fernão Lopes.                       pptxFernão Lopes.                       pptx
Fernão Lopes. pptx
 
Redação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptxRedação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptx
 
Especialidade - Animais Ameaçados de Extinção(1).pdf
Especialidade - Animais Ameaçados de Extinção(1).pdfEspecialidade - Animais Ameaçados de Extinção(1).pdf
Especialidade - Animais Ameaçados de Extinção(1).pdf
 
O que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdfO que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdf
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
 
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdfPowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
 
Atividade letra da música - Espalhe Amor, Anavitória.
Atividade letra da música - Espalhe  Amor, Anavitória.Atividade letra da música - Espalhe  Amor, Anavitória.
Atividade letra da música - Espalhe Amor, Anavitória.
 
Famílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do AssaréFamílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do Assaré
 
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de CarvalhoO sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
 
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdf
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdfCaderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdf
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdf
 
Sócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slidesSócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slides
 

Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1

  • 2.
  • 3.  As configurações de banco de dados no Laravel ficam armazenadas na pasta config, arquivo database.php;  Como exemplo, edite o vetor connections do arquivo database.php com as configurações apresentadas ao lado
  • 4. Crie a base de dados “laravel” a partir do phpmyadmin; Abra o arquivo .env localizado na pasta raiz do projeto Laravel e edite as configurações padrão de conexão;
  • 5.
  • 6. Funcionalidade nativa do Laravel; O primeiro framework PHP a se preocupar com isso; Algo que era disponível apenas no Ruby! Permite a criação de classes que permitem inicializar (subir) bancos de dados de aplicações e remover informações de bancos quando necessário; Facilita a sincronização de dados em banco;
  • 7. Exemplo: Vá no seu terminal, acesse a partir dele a pasta C:xampphtdocsnomeProjeto e digite o comando: php artisan make:migration tabela_livro Uma nova migration com o nome xxxx_tabela_livro será criada em database/migrations/;  OBS.: Remova as migrations de exemplo que constam na pasta database/migrations/
  • 8.  Continuando o exemplo, na migration tabela_livro, edite só os métodos up e down: public function up() { Schema::create(‘livro’, function(Blueprint $tabela) { $tabela->integer(‘id’, true); $tabela->string(‘titulo’, 100); $tabela->text(‘descricao’); $tabela->date(‘data_publicacao’); }); }
  • 9. Continuando o exemplo, na migration tabela_livro, edite só os métodos up e down: public function down() { Schema::drop(‘livro’); }
  • 10. Exemplo: Vá no seu terminal, acesse a partir dele a pasta C:xampphtdocsnomeProjeto e digite o comando: php artisan migrate Quando o comando for concluído, abra o phpmyadmin, banco laravel e verifique se a tabela livros foi criada com sucesso;
  • 11. Exemplo: Para executar o método down da migration, vá no seu terminal, acesse a partir dele a pasta C:xampphtdocsnomeProjeto e digite o comando: php artisan migrate:reset Quando o comando for concluído, abra o phpmyadmin, banco laravel e verifique se a tabela livros foi excluída com sucesso;
  • 12. Chegou a hora de criar nossas classes Model!!
  • 13. O Laravel trabalha com ORM (Object Relacional Mapping), que se encarrega de abstrair a conversão das estruturas de tabelas de BD e instruções SQL para o mundo da orientação a objetos; O Eloquent implementa o padrão Active Record, em que cada tabela deve possuir uma classe correspondente (um Model MVC);
  • 14.  Exemplo: Vá para a pasta app do projeto laravel e crie a pasta Models (infelizmente o Laravel não cria essa pasta por padrão);  Vá no seu terminal, acesse a partir dele a pasta C:xampphtdocsnomeProjeto e digite o comando: php artisan make:model Models/LivroModel  Uma nova model com o nome LivroModel será criada em app/Models/;
  • 15.  Continuando o exemplo, edite a Model LivroModel: Class LivroModel extends Model { protected $table = ‘livro’; protected $primaryKey = ‘id’; protected $fillable = [ ‘titulo’, ‘descricao’, ‘data_publicacao’ ]; public $timestamps = false; }
  • 16. Para testar nossas consultas, acesse o arquivo de rotas e registre a seguinte rota: Route::resource(‘livro', ‘LivroController’);
  • 17. Agora, vá no seu terminal, acesse a partir dele a pasta C:xampphtdocsnomeProjeto e digite o comando: php artisan make:controller LivroController --resource Uma nova controller com o nome LivroController será criada em app/Http/Controllers/;
  • 18. Continuando o exemplo, inclua uma importação na classe LivroController: use AppModelsLivroModel;
  • 19. Em seguida, edite o método index da classe LivroController: public function index() { return LivroModel::all(); }
  • 20. Por fim, abra o phpmyadmin, acesse a tabela livros, insira alguns livros (clicando em Insere), abra o navegador e acesse http://localhost:8000/livro/ Um select * from livros será executado automaticamente e apresentado na tela!
  • 21.
  • 22.  Edite o exemplo anterior e faça com que o projeto Laravel também permita inserir, editar e excluir livros, além de exibir informações de um livro específico;  A sintaxe para os métodos de Model para as devidas ações CRUD estão disponíveis em https://laravel.com/docs/5.8/eloquent (Inserting & Updating Models, Retrieving Single Models e Deleting Models);  Faça os registros de rota e a criação de Views necessárias para cada operação;
  • 23.  Observação:  Para criar um método que possa capturar os inputs do formulário, utilize um objeto da classe Request como parâmetro do método. Exemplo: public function postNome(Request $request) { printf(“Nome: %s", ($request->input('nome'))); }
  • 24.  Lembre-se também que cada método CRUD criado em um controller de recurso pode ser executado automaticamente, dependendo da requisição HTTP realizada e do formato da URI: Tipo URI Ação GET /livro index GET /livro/create create POST /livro store GET /livro/{id} show GET /livro/{id}/edit edit PUT/PATCH /livro/{id} update DELETE /livro/{id} destroy
  • 25.  Lembre-se também que cada método CRUD criado em um controller de recurso tem uma funcionalidade específica sugerida:  index – Método que chamará uma view para a exibição de dados;  create – Método que chamará uma view para o formulário de inserção de dados;  store – Método que executará a inserção de dados a partir de um Model;  show - Método que chamará uma view para a exibição de um recurso específico;  edit - Método que chamará uma view para o formulário de edição de dados;  update - Método que executará a edição de dados a partir de um Model;  destroy – Método que executará a exclusão de dados a partir de um Model;
  • 26.  Exemplo: Edite o método store da classe LivroController: public function store(Request $request) { $livro = new LivroModel; $livro->titulo = $request->input(‘titulo’); $livro->descricao = $request->input(‘descricao’); $livro->data_publicacao = $request- >input(‘data_publicacao’); $livro->save(); }
  • 27.  Exemplo: Edite o método edit da classe LivroController: public function edit($id) { $livro = LivroModel::find($id); return view(‘editar’, [ ‘id’ => $id, ‘titulo’ => $livro->titulo, ‘descricao’ => $livro->descricao, ‘data_publicacao’ => $livro->data_publicacao ]); }
  • 28.  Exemplo: Edite o método update da classe LivroController: public function update(Request $request, $id) { $livro = LivroModel::find($id); $livro->titulo = $request->input(‘titulo’); $livro->descricao = $request->input(‘descricao’); $livro->data_publicacao = $request- >input(‘data_publicacao’); $livro->save(); }
  • 29. Exemplo: Edite o método show da classe LivroController: public function show($id) { $livro = LivroModel::find($id); printf($livro); }
  • 30. Exemplo: Edite o método destroy da classe LivroController: public function destroy($id) { $livro = LivroModel::find($id); $livro->delete(); }