Documentos de Académico
Documentos de Profesional
Documentos de Cultura
4 Hoja de revisión
Rev. 1
14/Julio/2017
15/Julio/2017
Pedro. Propuesta de Plantilla e índice
Rev. 4
Rev. 5
Rev. 6
ITSLP
Av. Tecnológico • S/N
Soledad de Graciano Sánchez, SLP 78320
Teléfono 444 189 06 67 • Email pgarcia1000@itslp.edu.mx
Contenido
INTRODUCCIÓN ................................................................................................................................. 3
1 LIBRERÍA BOOTSTRAP................................................................................................................ 3
<!DOCTYPE html>
<html> <div class="row">
<head> <div class="col-xs-12">
<meta charset="utf-8"> <h1>Agenda (CRUD Laravel 5.4)</h1>
<title>Plantilla del sitio</title> </div>
<!-- Latest compiled and minified CSS --> @yield('contenido')
<link rel="stylesheet" </div>
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstra </div>
p.min.css"
integrity="sha384- <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" <script
crossorigin="anonymous"> src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.mi
</head> n.js"></script>
<body> <script
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> min.js"
<script integrity="sha384-
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.mi Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
n.js"></script> crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript --> </script>
<script </body>
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap. </html>
min.js"
integrity="sha384-
Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
crossorigin="anonymous"> 1.1 Vista inicial (index)
</script>
</body>
</html> Para usar la herencia de plantillas, modificamos el archivo index.blade.php para indicarle
que hereda de la plantilla y solo insertará donde está la etiqueta @yield
Ahora procedemos a crear la distribución:
resources\views\index.blade.php
<!DOCTYPE html>
<html> @extends('plantilla')
<head> @section('contenido')
<meta charset="utf-8"> <div class="col-sm-8" style="background-color: #cccccc">
<title>Plantilla del sitio</title> <h1>Lista de Amigos</h1>
<link rel="stylesheet" <h4><a href="{{route('amigos.create')}}">Registrar nuevo
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstra amigo</a></h4>
p.min.css" @if($amigos)
integrity="sha384- <table class="table table-hover table-stripped">
BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" <thead>
crossorigin="anonymous"> <th>Nombre</th>
</head> <th>Edad</th>
<body> <th>Sueldo</th>
<!-- Distribución de la página principal --> <th>local</th>
<div class="container"> <th colspan="3"><center>Acciones</center></th>
</thead> Con estos sencillos cambios logramos que mejorara sustancialmente el aspecto visual,
<tbody>
@foreach ($amigos as $amigo)
obteniendo la siguiente vista:
<tr>
<td>{{$amigo->nombre_tx}}</td>
<td>{{$amigo->edad_n}}</td>
<td>${{$amigo->sueldo_n}}</td>
<td>{{$amigo->local_yn}}</td>
<td> <a href="{{ route('amigos.show' , $amigo-
>amigo_id)}}"> Ver </a></td>
<td> <a href="{{ route('amigos.edit' , $amigo-
>amigo_id)}}"> Editar </a></td>
<td>
<form action="{{ route('amigos.destroy', $amigo-
>amigo_id)}}" method="post">
<input name="_method" type="hidden"
value="DELETE">
<input name="_token" type="hidden" value="{{
csrf_token() }}">
<button type="submit"> Borrar </a>
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
{{ $amigos->render() }}
@endif
</div>
<div class="col-sm-4" style="background-color: white">
Mensajes...
</div>
@endsection
Ya logramos la división de las secciones y los estilos bootstrap. Pero para lograr la
paginación, también debemos modificar una línea del respectivo archivo controlador:
app\Http\Controllers\AmigoController.php
:
public function index()
{
$amigos = Amigo::orderBy('nombre_tx','DESC')->paginate();
return view('index', compact('amigos'));
}
:
Obtenemos la siguiente vista:
1.2 Vista para Ver un solo registro (show)
Modificamos el archivo show.blade.php donde le indicamos que hereda del archivo
plantilla.blade.php y usamos estilos de bootstrap para mejorar el aspecto visual.
resources\views\show.blade.php
@extends('plantilla')
@section('contenido')
<div class="col-sm-12" style="background-color: #cccccc">
@if($amigo)
<h2>Amigo: {{$amigo->nombre_tx}} </h2>
@if(Session::has('info'))
<div class="alert alert-info">
<button type="button" class='close' data-dismiss="alert">
×
</button>
{{Session::get('info')}}
</div> Obtenemos la siguiente vista justo después de eliminar un registro:
@endif
Modificamos la vista index (aprox. Línea 8), para indicar donde se insertara el mensaje:
resources\views\fragmentos\index.blade.php
:
:
<h4><a href="{{route('amigos.create')}}">Registrar nuevo
amigo</a></h4>
@include('fragmento.info');
@if($amigos)
<table class="table table-hover table-stripped">
:
:
Dentro del directorio fragmentos el archivo lateral que contendrá los textos que
aparecerán a la derecha de los formularios:
resources\views\fragmentos\lateral.blade.php
resources\views\index.blade.php
:
:
<div class="col-sm-4" style="background-color: white">
@include('fragmento.lateral')
</div>
@endsection
resources\views\show.blade.php
:
:
<div class="col-sm-4" style="background-color: white">
@include('fragmento.lateral')
</div>
@endsection
resources\views\edit.blade.php
@extends('plantilla')
@section('contenido')
<div class="col-sm-8" style="background-color: #cccccc">
<h1>Edición de un Amigo</h1>
<div class="col-sm-4" style="background-color: white"> Ahora mejoraremos la vista para crear un registro, modificamos el archivo
<p class='alert alert-info'> create.blade.php.
Introduce los datos y despúes oprime el boton de actualizar.
Si no quieres editar, resources\views\create.blade.php
solo regresa a la página previa.
</p> @extends('plantilla')
</div>
@endsection @section('contenido')
<div class="col-sm-8" style="background-color: #cccccc">
A continuación vemos como luce el formulario para editar un amigo:
<h1>Registrar un nuevo Amigo</h1>
</form>
</div>