Blade y views en Laravel

Estructura de una vista en Laravel

Las vistas son consideradas el contenido de un proyecto que es mostrado al usuario donde el usuario puede interactuar y desde donde puede realizar acciones. En Laravel se alojan en el directorio resources/views y contienen un sufijo .blade.

Laravel dispone de un sistema de plantillas llamado blade similar al de otros frameworks que permite dar más flexibidad a la composición de las vistas y  dotan de características propias que proporcionan seguridad al proyecto. Con este sistema es posible crear plantillas  y después integrar estas plantillas a las vistas asignando o modificando secciones de dicha plantilla. De esta forma se evita repetición de código utilizando la misma plantilla o plantillas para varias vistas.

Estructura de una plantilla:


  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  6. <meta name="description" content="">
  7. <meta name="author" content="">
  8. <link rel="icon" href="favicon.ico">
  9. <title>@yield("title")</title>
  10. <!-- Bootstrap core CSS -->
  11. <link rel="stylesheet" href="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous">
  12. <!-- Custom styles for this template -->
  13. <link href="{{ asset("css/style.css")}}" rel="stylesheet">
  14. </head>
  15. <body>
  16. <div class="row mt-3">
  17. <div class="col-8">
  18. @yield("content")
  19. </div>
  20. <div class="col-4">
  21. @section("sidebar")
  22. <h2>Barra Lateral</h2>
  23. @show
  24. </div>
  25. </div>
  26. </main>
  27. <footer class="footer">
  28. <div class="container">
  29. <span class="text-muted">Place sticky footer content here.</span>
  30. </div>
  31. </footer>
  32. <!-- Bootstrap core JavaScript
  33. ================================================== -->
  34. <!-- Placed at the end of the document so the pages load faster -->
  35. <script src="//code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
  36. <script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script>
  37. <script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
  38. </body>
  39. </html>

Estructura de una vista que extiende de una plantilla:

  1. @extends("layout")
  2. @section("title","Usuario {$id}")
  3. @section("content")
  4. Mostrando detalle del usuario: {{$id}}
  5. @endsection

Laravel permite mostrar los datos con métodos propios de laravel pero también permite con puro php :

  1. echo $datos;

Laravel dispone de opciones que actúan como filtro aumentando la seguridad en el flujo de datos que PHP :

  1. echo e($datos);
  1. {{ $datos }}

Para realizar un include se hace de forma similar a como se haría en PHP pero incluyendo la @ al comienzo y prescindiendo de la extensión .php:

  1. @include("nombre_de_archivo")

Comentarios: 0

Para poder comentar es necesario iniciar sesión



Este dominio utiliza cookies de terceros para crear estadísticas y publicidad personalizada. Si continúa navegando está aceptando su uso