ViewComposers y Layout FrontEnd

Implementación de ViewComposers para consultas recurrentes en Laravel 8, además de establecer el Layout o plantilla para el desarrollo FrontEnd

Lección 24 del Curso Laravel 8 Página Web 100% Administrable

ViewComposers y Layout FrontEnd

¿Cómo implementar ViewComposer en Laravel 8?

DESCRIPCIÓN DE LA LECCIÓN

Implementación de ViewComposers para consultas recurrentes en Laravel 8, además de establecer el Layout o plantilla para el desarrollo FrontEnd con una orientación hacia el SEO.

Un ViewComposer en terminos sencillos permite la persistencia de datos en consultas recurrentes, en nuestro proyecto web de artesanías necesitamos datos como email, dirección, logo, favicon, etc extraerlos en casi todas las secciones. Y vemos que es una buena solución

¿Cómo implementar ViewComposers en Laravel?

App/Http/ViewComposers/MenuComposer

<?php

namespace App\Http\ViewComposers;

use Illuminate\Contracts\View\View;
use App\Models\Configuracion;

class MenuComposer{

    public function compose(View $view){
        $config = Configuracion::find(1);
        $view->with('config',$config);
    }
}

 

Creación del Provider App/Providers/ComposerServiceProvider.php

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\View;


class ComposerServiceProvider extends ServiceProvider
{
 
    public function register()
    {
        View::composer(['*'],'App\Http\ViewComposers\MenuComposer');
    }

  
    public function boot()
    {
      

    }
}

 

Registrar el provider en App/Config/App.php

...
App\Providers\ComposerServiceProvider::class,
...

 

Finalmente el Layout Dinámico

<!doctype html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="csrf-token" content="{{ csrf_token() }}">

    <title>@yield('title', $config->seo_title)</title>
    <meta name="description" content="@yield('description', $config->seo_description)">
    <meta property="og:type" content="website" />
    <meta property="og:description" content="@yield('description',  $config->seo_description)"/>
    <meta property="og:url" content="@yield('url','https://artesanias.com')"/>   
    <meta property="og:site_name" content="artesanias.com" />
    <meta property="og:image" content="@yield('image','https://artesanias.com/img/configuracion/'.$config->seo_urlfoto)" />
    <link rel="canonical" href="@yield('url','https://artesanias.com')"/>
    <link rel="shortcut icon" href="/img/configuracion/{{$config->urlfavicon}}" type="image/png" />

    <link rel="stylesheet" href="/css/bootstrap.min.css">
    <script src="/js/jquery.min.js"></script>
    <script src="/js/bootstrap.min.js"></script>
    <script src="https://cdn.ckeditor.com/4.15.0/standard/ckeditor.js"></script>

</head>
<body>

  ...

        @yield('content')
</body>
</html>

POR LA COMPRA DEL CURSO COMPLETO

  • MIRA TODOS LOS VIDEOS SIN RESTRICCIÓN
  • TEN ACCESO AL CURSO DE POR VIDA
  • DESCARGA TODO CÓDIGO FUENTE DEL PROYECTO
  • ACCESO A CURSOS Y RECURSOS GRATIS

Laravel 8 Página Web 100% Administrable

212 visitas

Logo Codea App

Develop your code

Perú, México, Colombia, España, Venezuela, Argentina, Bolivia

You Fb Tik Pin

© Todos los derechos reservados CODEA APP | Cursos de programación avanzados con proyectos reales | 2020 - 2021