SlideShare uma empresa Scribd logo
Thyago Maia Tavares de Farias
Recursos dinâmicos fornecidos pelo Blade
Exemplo: Acesse o arquivo de rotas e registre a
seguinte rota:
Route::get('/se', function() {
return view(‘vazio‘, [
‘lista’ => []
]);
});
Agora edite a view vazio.blade.php e acesse
http://laravel.dev/se :
@if(count($lista) == 0)
<p>Não existe dados na lista</p>
@else
<p>Existem dados na lista</p>
@endif
Acesse o arquivo de rotas, atualize a rota se e acesse
http://laravel.dev/se :
Route::get('/se', function() {
return view(‘vazio‘, [
‘lista’ => [‘item’]
]);
});
Exemplo: Acesse o arquivo de rotas e registre a
seguinte rota:
Route::get('/para-cada', function() {
return view(‘dados‘, [
‘lista’ => [‘dado1’, ’dado2’]
]);
});
Agora edite a view dados.blade.php e acesse
http://laravel.dev/para-cada :
@foreach($lista as $item)
<p>{{ $item }}</p>
@endforeach
Para permitir o reuso de código, geralmente
dividimos nossas Views em pequenas partes e,
depois, as utilizamos quando necessário;
Assim, é possível alterar partes de View em um só
lugar e refletir a alteração em vários lugares ao
mesmo tempo. O Blade nos ajuda nesse sentido;
Exemplo: Acesse o arquivo de rotas e registre a
seguinte rota:
Route::get('/include', function() {
return view(‘include‘);
});
Crie na pasta /resource/views a view include.blade.php e
acesse http://laravel.dev/include :
<h1>Parte da View principal</h1>
@include(‘welcome’)
O Blade também fornece estruturas de repetição.
Ex:
@for ($i=0;$i<10;$i++)
<p>O valor de i é {{ $i }}</p>
@endfor
O Blade também fornece estruturas de repetição.
Ex:
@while(true)
<p>Vou travar seu navegador!</p>
@endwhile
Desenvolvimento de sistemas web com PHP Frameworks - Aula 3
O Laravel nos propõe facilidades para a validação
de dados a partir de controllers;
Para apresentar o referido recurso, vamos
implementar, na forma tradicional, um controller
com métodos de validação. Logo em seguida,
iremos refatorar a classe com recursos de validação
do Laravel;
Exemplo: Vá no seu terminal, acesse a partir dele a
pasta C:xampphtdocslaravel e digite o comando:
php artisan make:controller ValidacaoController
Um novo controller com o nome ValidacaoController
será criado em app/Http/Controllers;
Continuando o exemplo, no controller ValidacaoController,
crie o seguinte método:
public function validaTitulo(Request $request) {
if($request->input(‘titulo’) == ‘’)
return ‘Título não pode ser vazio’;
if(strlen($request->input(‘titulo’)) < 3)
return ‘Título deve ter no mínimo 3 letras’;
}
 Agora, no controller ValidacaoController, iremos refatorar o
primeiro if do método validaTitulo:
public function validaTitulo(Request $request) {
$this->validate($request, [
‘titulo’ => ‘required’
]);
if(strlen($request->input(‘titulo’)) < 3)
return ‘Título deve ter no mínimo 3 letras’;
}
Em seguida, no controller ValidacaoController, iremos
refatorar a classe, tirando a necessidade do segundo if do
método validaTitulo:
public function validaTitulo(Request $request) {
$this->validate($request, [
‘titulo’ => ‘required|min:3’
]);
}
Para testar nossas validações, acesse o arquivo de
rotas e registre a seguinte rota:
Route::get('/form', function() {
return view(‘form‘);
});
Route::post(‘/form’,
‘ValidacaoController@validaTitulo’);
 Agora, começaremos a manipular a camada de visualização de dados. Crie a view
form.blade.php na pasta resource/views e acesse http://laravel.dev/form :
@if(count($errors) > 0)
@foreach($errors->all() as $error)
<p>{{ $error }}</p>
@endforeach
@endif
<form method="post">
{{ csrf_field() }}
<p>Titulo: <input type="text" name=“titulo"></p>
<input type=“submit” value=“Enviar”>
</form>
Exercício valendo pontos para a nota final da disciplina
 Faça uma aplicação no Laravel que:
 Na página raiz da aplicação, permita ao usuário visualizar 4 links:
Adição, Subtração, Multiplicação e Divisão. Cada link deverá levar o
usuário a uma rota criada para cada operação;
 Na pasta Views, crie uma View para cada operação matemática, além de
uma View para a página de links;
 Nas Views de cálculo, o usuário deverá digitar dois números em um
formulário;
 Crie um controller que possua 4 métodos, cada um dedicado para uma
operação matemática;
 Edite o arquivo de rotas para que uma rota seja definida para cada um
dos métodos da classe controller criada anteriormente;
 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')));
}

Mais conteúdo relacionado

PPTX
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
PPTX
Desenvolvimento de sistemas web com PHP Frameworks - Aula 4
PPTX
Desenvolvimento de sistemas web com php Frameworks - Aula 1
PPTX
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
PPTX
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 2
PPTX
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 4 - 2019.1
PPTX
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1
PPTX
Programação Dinâmica para Web - Aula 2
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
Desenvolvimento de sistemas web com PHP Frameworks - Aula 4
Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 2
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 4 - 2019.1
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1
Programação Dinâmica para Web - Aula 2

Mais procurados (20)

PDF
Criando e consumindo Web Services (REST) com o CakePHP
PDF
Novas Funcionalidade no PHP 5.3
PDF
Programação Orientada a Objetos (POO) com PHP - Parte 1
PDF
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PDF
Java web 6 JSP Expression Language Taglib parte 2
PDF
Java Web 4 - Servlets e JSP 2
PDF
Como criar um plugin para WordPress
PDF
Django Módulo Básico Parte II
PDF
Rest Beer v2
PDF
Desenvolvimento em .Net - nHibernate
PDF
Introdução à MEAN Stack
PPT
Python cherrypy
PDF
Java script aula 05 - funções
PDF
Servidor de Aplicação Web: CherryPy - Python
PDF
Java script aula 02 - operadores
PDF
Java script - funções
PPT
Apresentacao TCC - Rafael Felix
PDF
Web 2.0 e AJAX - Parte 2 / 3
PDF
Namespaces
PDF
PHP Aula 05 - E-mails, Cookies e Sessoes
Criando e consumindo Web Services (REST) com o CakePHP
Novas Funcionalidade no PHP 5.3
Programação Orientada a Objetos (POO) com PHP - Parte 1
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
Java web 6 JSP Expression Language Taglib parte 2
Java Web 4 - Servlets e JSP 2
Como criar um plugin para WordPress
Django Módulo Básico Parte II
Rest Beer v2
Desenvolvimento em .Net - nHibernate
Introdução à MEAN Stack
Python cherrypy
Java script aula 05 - funções
Servidor de Aplicação Web: CherryPy - Python
Java script aula 02 - operadores
Java script - funções
Apresentacao TCC - Rafael Felix
Web 2.0 e AJAX - Parte 2 / 3
Namespaces
PHP Aula 05 - E-mails, Cookies e Sessoes
Anúncio

Semelhante a Desenvolvimento de sistemas web com PHP Frameworks - Aula 3 (20)

PDF
Aula 12 Relatório - Tabelas
ODP
Apresentação j query6
ODP
Mvc sem Controller
PDF
Criando controle de acesso com php e my sql
PPT
PHP FrameWARks - FISL
PDF
Aula 08 - Introdução ao banco de dados MySQL - Programação Web
PPTX
Design patterns
PDF
Evento Front End SP - Organizando o Javascript
PDF
Ecommerce, mais simples do que parece
PDF
Ecommerce, mais simples do que parece
PPT
LINQ - Language Integrated Query
PDF
Manual_Dicas e truques de script - MikroTik Wiki.pdf
PDF
Hooks, o condimento mágico e escondido do WordPress
PDF
jQuery Simplificando o JavaScript
DOC
PDF
PHP ao Extremo
PDF
Workshop Django
PDF
Java 8 - New Features
PDF
PHP fora da Web
PDF
Minicurso de jQuery
Aula 12 Relatório - Tabelas
Apresentação j query6
Mvc sem Controller
Criando controle de acesso com php e my sql
PHP FrameWARks - FISL
Aula 08 - Introdução ao banco de dados MySQL - Programação Web
Design patterns
Evento Front End SP - Organizando o Javascript
Ecommerce, mais simples do que parece
Ecommerce, mais simples do que parece
LINQ - Language Integrated Query
Manual_Dicas e truques de script - MikroTik Wiki.pdf
Hooks, o condimento mágico e escondido do WordPress
jQuery Simplificando o JavaScript
PHP ao Extremo
Workshop Django
Java 8 - New Features
PHP fora da Web
Minicurso de jQuery
Anúncio

Mais de Thyago Maia (10)

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

Último (20)

PDF
Cantores.pdf-Deslandes, Tinoco e Zambujo
PDF
Um dia na casa do Mensageiro (que a paz e benção de Deus estejam com ele)
PPTX
GUERRAFRIA.pptdddddddddddddddddddddddddx
PPTX
16. MODERNISMO - PRIMEIRA GERAÇÃO - EDIÇÃO 2021 (1).pptx
PDF
Formação politica brasil_2017.pptx.pdf
PDF
O retorno a origem (islã Islamismo)
PPTX
Slides Lição 7, CPAD, Uma Igreja Que Não Teme A Perseguição, 3Tr25.pptx
PPTX
Realismo e Naturalismo: Aluísio Azevedo.
PPTX
NR11 - Treinamento Direcao Defensiva - 2023.pptx
PPTX
Lição 8 EBD.pptxtudopossonaquelequemimfortalece
PPTX
Biologia celular: citologia, é o estudo da célula, a unidade básica da vida.
PDF
Ementa 2 semestre PEI Orientação de estudo
PPT
História e Evolução dos Computadores domésticos
PDF
Uma Introdução às Ciências do Alcorão (Islam)
PDF
A relação entre funções executivas e desempenho acadêmico em crianças com Tra...
PDF
TANATOPRAXIA - Introdução.pdffffffffffffffff
PPT
HISTOLOGIA VEGETAL - tecidos vegetais.ppt
PDF
Combate a Incêndio - Estratégias e Táticas de Combate a Incêndio por Francis...
PDF
GESTÃO DA FASE PRÉ-ANALÍTICA- Recomendações da SBPC-ML (3).pdf
PDF
Metabolismo_energético_3ano_pre_vest_2026.pdf
Cantores.pdf-Deslandes, Tinoco e Zambujo
Um dia na casa do Mensageiro (que a paz e benção de Deus estejam com ele)
GUERRAFRIA.pptdddddddddddddddddddddddddx
16. MODERNISMO - PRIMEIRA GERAÇÃO - EDIÇÃO 2021 (1).pptx
Formação politica brasil_2017.pptx.pdf
O retorno a origem (islã Islamismo)
Slides Lição 7, CPAD, Uma Igreja Que Não Teme A Perseguição, 3Tr25.pptx
Realismo e Naturalismo: Aluísio Azevedo.
NR11 - Treinamento Direcao Defensiva - 2023.pptx
Lição 8 EBD.pptxtudopossonaquelequemimfortalece
Biologia celular: citologia, é o estudo da célula, a unidade básica da vida.
Ementa 2 semestre PEI Orientação de estudo
História e Evolução dos Computadores domésticos
Uma Introdução às Ciências do Alcorão (Islam)
A relação entre funções executivas e desempenho acadêmico em crianças com Tra...
TANATOPRAXIA - Introdução.pdffffffffffffffff
HISTOLOGIA VEGETAL - tecidos vegetais.ppt
Combate a Incêndio - Estratégias e Táticas de Combate a Incêndio por Francis...
GESTÃO DA FASE PRÉ-ANALÍTICA- Recomendações da SBPC-ML (3).pdf
Metabolismo_energético_3ano_pre_vest_2026.pdf

Desenvolvimento de sistemas web com PHP Frameworks - Aula 3

  • 3. Exemplo: Acesse o arquivo de rotas e registre a seguinte rota: Route::get('/se', function() { return view(‘vazio‘, [ ‘lista’ => [] ]); });
  • 4. Agora edite a view vazio.blade.php e acesse http://laravel.dev/se : @if(count($lista) == 0) <p>Não existe dados na lista</p> @else <p>Existem dados na lista</p> @endif
  • 5. Acesse o arquivo de rotas, atualize a rota se e acesse http://laravel.dev/se : Route::get('/se', function() { return view(‘vazio‘, [ ‘lista’ => [‘item’] ]); });
  • 6. Exemplo: Acesse o arquivo de rotas e registre a seguinte rota: Route::get('/para-cada', function() { return view(‘dados‘, [ ‘lista’ => [‘dado1’, ’dado2’] ]); });
  • 7. Agora edite a view dados.blade.php e acesse http://laravel.dev/para-cada : @foreach($lista as $item) <p>{{ $item }}</p> @endforeach
  • 8. Para permitir o reuso de código, geralmente dividimos nossas Views em pequenas partes e, depois, as utilizamos quando necessário; Assim, é possível alterar partes de View em um só lugar e refletir a alteração em vários lugares ao mesmo tempo. O Blade nos ajuda nesse sentido;
  • 9. Exemplo: Acesse o arquivo de rotas e registre a seguinte rota: Route::get('/include', function() { return view(‘include‘); });
  • 10. Crie na pasta /resource/views a view include.blade.php e acesse http://laravel.dev/include : <h1>Parte da View principal</h1> @include(‘welcome’)
  • 11. O Blade também fornece estruturas de repetição. Ex: @for ($i=0;$i<10;$i++) <p>O valor de i é {{ $i }}</p> @endfor
  • 12. O Blade também fornece estruturas de repetição. Ex: @while(true) <p>Vou travar seu navegador!</p> @endwhile
  • 14. O Laravel nos propõe facilidades para a validação de dados a partir de controllers; Para apresentar o referido recurso, vamos implementar, na forma tradicional, um controller com métodos de validação. Logo em seguida, iremos refatorar a classe com recursos de validação do Laravel;
  • 15. Exemplo: Vá no seu terminal, acesse a partir dele a pasta C:xampphtdocslaravel e digite o comando: php artisan make:controller ValidacaoController Um novo controller com o nome ValidacaoController será criado em app/Http/Controllers;
  • 16. Continuando o exemplo, no controller ValidacaoController, crie o seguinte método: public function validaTitulo(Request $request) { if($request->input(‘titulo’) == ‘’) return ‘Título não pode ser vazio’; if(strlen($request->input(‘titulo’)) < 3) return ‘Título deve ter no mínimo 3 letras’; }
  • 17.  Agora, no controller ValidacaoController, iremos refatorar o primeiro if do método validaTitulo: public function validaTitulo(Request $request) { $this->validate($request, [ ‘titulo’ => ‘required’ ]); if(strlen($request->input(‘titulo’)) < 3) return ‘Título deve ter no mínimo 3 letras’; }
  • 18. Em seguida, no controller ValidacaoController, iremos refatorar a classe, tirando a necessidade do segundo if do método validaTitulo: public function validaTitulo(Request $request) { $this->validate($request, [ ‘titulo’ => ‘required|min:3’ ]); }
  • 19. Para testar nossas validações, acesse o arquivo de rotas e registre a seguinte rota: Route::get('/form', function() { return view(‘form‘); }); Route::post(‘/form’, ‘ValidacaoController@validaTitulo’);
  • 20.  Agora, começaremos a manipular a camada de visualização de dados. Crie a view form.blade.php na pasta resource/views e acesse http://laravel.dev/form : @if(count($errors) > 0) @foreach($errors->all() as $error) <p>{{ $error }}</p> @endforeach @endif <form method="post"> {{ csrf_field() }} <p>Titulo: <input type="text" name=“titulo"></p> <input type=“submit” value=“Enviar”> </form>
  • 21. Exercício valendo pontos para a nota final da disciplina
  • 22.  Faça uma aplicação no Laravel que:  Na página raiz da aplicação, permita ao usuário visualizar 4 links: Adição, Subtração, Multiplicação e Divisão. Cada link deverá levar o usuário a uma rota criada para cada operação;  Na pasta Views, crie uma View para cada operação matemática, além de uma View para a página de links;  Nas Views de cálculo, o usuário deverá digitar dois números em um formulário;  Crie um controller que possua 4 métodos, cada um dedicado para uma operação matemática;  Edite o arquivo de rotas para que uma rota seja definida para cada um dos métodos da classe controller criada anteriormente;
  • 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'))); }