View Composer
Comprar curso

31. View Composer

En este capítulo, aprenderás cómo utilizar View Composer en Laravel 10. View Composer es una herramienta que te permite definir lógica de presentación en una ubicación centralizada y reutilizable. Te enseñaremos cómo utilizar View Composer en Laravel 10 para definir la lógica de presentación en una sola ubicación y mejorar la estructura y la organización del código.


4 comentarios

Inicia sesión para comentar

Comentarios:

  • Victor Arana Flores

    Victor Arana Flores hace 1 año Destacado

    View Composer es una herramienta poderosa en Laravel 10 que permite definir la lógica de presentación en una ubicación centralizada y reutilizable. En lugar de definir la lógica de presentación en cada controlador individualmente, View Composer te permite definirla una vez y utilizarla en múltiples vistas.

    Para utilizar View Composer en Laravel 10, primero debes crear una clase de View Composer que implemente el método 'composeIlluminate\View\View como su único argumento y te permite manipular la vista antes de que se muestre al usuario.

    Una vez que hayas creado la clase View Composer, debes registrarla en el método boot de un proveedor de servicios. Dentro de este método, puedes utilizar el método 'composercomposer de la clase View para registrar la clase View Composer para una vista específica o para todas las vistas que utilizan un cierto layout.

    Por ejemplo, si deseas definir la lógica de presentación para la vista de inicio de tu aplicación, puedes crear un View Composer llamado 'HomeComposer y registrarlo en un proveedor de servicios de la siguiente manera:

    View::composer('home', HomeComposer::class);

    Esto definirá la lógica de presentación para la vista de inicio de tu aplicación en la clase HomeComposer.

    En resumen, View Composer es una herramienta útil en Laravel 10 que permite definir la lógica de presentación en una ubicación centralizada y reutilizable. Con la capacidad de definir la lógica de presentación una vez y utilizarla en múltiples vistas, View Composer puede mejorar la estructura y la organización del código. Al crear una clase View Composer y registrarla en un proveedor de servicios, se puede definir la lógica de presentación para una vista específica o para todas las vistas que utilizan un cierto layout.

  • Leandro Carta

    Leandro Carta hace 9 meses

    Buenas, a mi me sale el error (Undefined variable $prueba2) en la vista donde la llamo, en este caso la llamo desde el index. Mis rutas no se llaman post sino que las nombre “emprendedores”.

    Copio código del Composer donde creo la variable o parámetro a enviar:

    class EmprendedorComposer { 

    public function compose(View $view)

        {

            $view->with('prueba2', 'Mensaje de prueba 2');

        }

    }

    Copio el codigo del Providers “ViewServiceProvider”, solamente pego la función boot().

    public function boot(): void

        {

            View::share('prueba', 'esto es una pruba');

            View::composer('emprendedores.*', EmprendedorComposer::class);

        }

    Código de la viste index donde marca el error que la variable $prueba2 esta indefinida:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Kappo</title>
    </head>
    <body>
        <h1>Aqui se mostraran todos los emprendedores</h1>
        <p>Vamos a pasar el parametro {{$prueba2}}</p>
    </body>
    </html>
  • Jose Alfredo Herrera Villalba

    Jose Alfredo Herrera Villalba hace 1 año

    Cordial saludo me esta saliendo el siguiente error cuando estoy creando la clase en PostComposer.php

     

    syntax error, unexpected identifier "compose", expecting variable

     

     

     

    Este es el codido completo 

    C:\xampp\htdocs\example1\app\View\Composers\PostComposer.php : 6

    <?php
    namespace App\View\Composers;
    use Illuminate\View\View;
    class PostComposer
    {
        public funtion compose(View $view)
         {
            $view->with('prueba2','Este es un mensaje de prueba2');
        }
    }
    • Victor Arana Flores hace 1 año

      Como tienes tu archivo appServicesProvider

    • Jose Alfredo Herrera Villalba hace 1 año

      ?php


       

      namespace App\Providers;


       

      use Illuminate\Support\Facades\View;

      use Illuminate\Support\ServiceProvider;


       

      class AppServiceProvider extends ServiceProvider

      {

          /**

           * Register any application services.

           *

           * @return void

           */

          public function register()

          {

              //

          }


       

          /**

           * Bootstrap any application services.

           *

           * @return void

           */

          public function boot()

          {

              //View::composer('posts.index','App\View\Composers\PostComposer');

              View::share('prueba2','mensaje de prueba');

          }

      }

    • Victor Arana Flores hace 1 año

      Hola Jose, en lo que me has mandado no hay ningun error. Trata de revisar tu codigo con calma e ir depurando. Apartemente en alguna parte estas haciendo referencia a una variable llamada compose que no se encuentra definida.

    • Leandro Carta hace 9 meses

      Veo un error de sintaxis en "funtion", le falta la "C" = function
      public funtion compose(View $view)
           {
              $view->with('prueba2','Este es un mensaje de prueba2');
          }
          
  • Ramon Batista

    Ramon Batista hace 1 año

    Saludos… Gracias por las infos.. Me ha ayudado mucho el ver los videos del curso de PHP Objeto.. Gracias…

    • Victor Arana Flores hace 1 año

      De nada, cualquier cosa estoy aqui para ayudar :D