Está en la página 1de 5

Universidad

Telesup

Framework Laravel

PRACTICA 2: CONTROLADORES, RUTAS Y VISTAS


Objetivos: Entender el funcionamiento de controladores, rutas y vistas
CREACION DEL CONTROLADOR
Creamos el controlador llama HomeController.php con el siguiente cdigo:
HomeController.php
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class HomeController extends Controller{
public function index(){
return "Bienvenido al tutorial de Laravel 5";
}
public function getId($id1, $id2){
return "<p>id1 es igual a " . $id1 . "</p><p>id2 es igual a "
. $id2 . "</p>";
}
public function showView(){
$msg = "Aprendiendo Laravel 5";
$array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
return View('home.showview', ['msg' => $msg, 'array' => $array]);
}
}
CREACION DE RUTAS
A continuacin configuramos los metodos del controlador y le
asignamos una ruta, para ello abrimos el archivo routers.php y le
agregamos el siguiente cdigo.
routers.php
Route::get('home/index', 'HomeController@index');
Route::get('home/id1/{id1}/id2/{id2}', 'HomeController@getId');
Route::get('home/showview', 'HomeController@showView');
CREACION DE LA VISTA
La accin showView de HomeController est asociada a una vista
"home.showview", home es la carpeta en la cual se alojarn las
vistas pertenecientes a HomeController y showview es el nombre
de la vista asociada a esta accin.Primeramente crearemos la
carpeta "home" en la siguiente ruta: resources\views
A continuacin crearemos la vista showview.blade.php en la
carpeta recien creada "home", la vista showview.blade.php
contiene el siguiente cdigo .

Ing. Ricardo Inquilla Quispe / ricardoinquilla@gmail.com / Cel: 9526397571/2

Universidad
Telesup

Framework Laravel

showview.blade.php
<h1>Tutorial Laravel 5</h1>
{{$msg}}
@foreach ($array as $index => $val)
<p>{{$index}} = {{$val}}</p>
@endforeach
Probamos los mtodos
http://localhost/holamundolaravel/public/home/index

http://localhost/holamundolaravel/public/home/id1/Richard/id2/Stallman

http://localhost/holamundolaravel/public/home/showview

AGREGANDO BOOSTRAP
Creamos el archivo home.blade.php dentro del directorio layouts

Ing. Ricardo Inquilla Quispe / ricardoinquilla@gmail.com / Cel: 9526397572/2

Universidad
Telesup

Framework Laravel

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>@yield('title')</title>
<meta name="description" content="@yield('description')" />
<meta name="keywords" content="@yield('keywords')" />
<link
rel='stylesheet'
type='text/css'
href='{{url('')}}/../bootstrap/css/bootstrap.min.css'/>
<script type='text/javascript' src='{{url('')}}/../bootstrap/js/jquery.js'></script>
<script
type='text/javascript'
src='{{url('')}}/../bootstrap/js/bootstrap.min.js'></script>
</head>
<body>
<div class="container" style='margin-top: 50px;'>
@yield('content')
</div>
</body>
</html>

Modificamos el archivo showviewblade.php


@extends('layouts.home')
@section('title', 'Ttulo del sitio web')
@section('description', 'Descripcin del sitio web')
@section('keywords', 'palabras, clave, del, sitio, web')
@section('content')
<h1>Tutorial Laravel 5</h1>
{{$msg}}
@foreach ($array as $index => $val)
<p>{{$index}} = {{$val}}</p>
@endforeach
Observamos cmo queda acoplado a BootStrap

Ing. Ricardo Inquilla Quispe / ricardoinquilla@gmail.com / Cel: 9526397573/2

Universidad
Telesup

Framework Laravel

CLASE REQUEST
A continuacin nos centramos en la clase Request para procesar la informacin enviada al
servidor a travs de los mtodos get y post. Concretamente crearemos una nueva accin
llamada form en HomeController que estar conectada a una vista llamada
form.blade.php, esta vista contendr un formulario que podr ser enviado a travs del
mtodo post, para esta nueva accin crearemos una ruta (home/form) en routes.php a
travs del mtodo match para aceptar peticiones del tipo get y post, tambin veremos
que con el mtodo any igualmente podemos aceptar peticiones get y post.
Agregamos la libreria Request al controlador HomeController.php
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
...

Agregamos el mtodo form con el siguiente cdigo:


HomeController.php
..
public function form(Request $request){
if ($request->isMethod("post") && $request->has("name"))
Ing. Ricardo Inquilla Quispe / ricardoinquilla@gmail.com / Cel: 9526397574/2

Universidad
Telesup

Framework Laravel

{
$name = $request->input("name");
}
else
{
$name = "";
}
return View("home.form", ["name" => $name]);
}
..
Crear la ruta en routes.php probar con los mtodos match y any:
..
//Peticiones del tipo get y post
//Route::match(["get", "post"], "home/form", "HomeController@form");
Route::any("home/form", "HomeController@form");
..
Creamos la vista form.blade.php y le agregamos el siguiente codigo:
<h1>POST</h1>
<form method="post" action="{{url('home/form')}}">
<label>Name: </label>
<input type="text" name="name" value="{{$name}}" />
{{csrf_field()}}
<button type="submit">Send</button>
</form>
Valor del campo name: {{$name}}
http://localhost/holamundolaravel/public/home/form

Ing. Ricardo Inquilla Quispe / ricardoinquilla@gmail.com / Cel: 9526397575/2

También podría gustarte