Posted in

Laravel 7 View Components

Para este ejemplo vamos a crear un componente para mostrar un Alert, lo haremos de la siguiente manera:

php artisan make:component Alert

Se crearan estos dos ficheros:

app/View/Components/Alert.php
resources/views/components/alert.blade.php

Al primero le añadiremos las referencias a las variables que vamos a usar (alertType y message):


namespace App\View\Components;

use Illuminate\View\Component;

class Alert extends Component
{
    public $alertType;
    public $message;
    /**
     * Create a new component instance.
     *
     * @return void
     */
    public function __construct($alertType, $message)
    {
        $this->alertType = $alertType;
        $this->message = $message;
    }

    /**
     * Get the view / contents that represent the component.
     *
     * @return \Illuminate\View\View|string
     */
    public function render()
    {
        return view('components.alert');
    }
}

y al segundo, la vista, le añadiremos el fragmento de código Bootstrap (en este caso) para mostrar el alert, el cual incluye nuestras variables.

<div class="alert alert-{{ $alertType }}" role="alert">
    {!! $message !!}
</div>

Ahora podremos llamar a este componente. Si el type y el mensaje no son unas variables, o sea que le pasamos el valor directamente, lo hacemos así:

<div class="col-lg-12">
    <x-alert alert-type="warning" message="Este es el mensaje"/>
</div>

En cambio, si queremos que el mensaje lo coja de una variable:

<div class="col-lg-12">
    <x-alert alert-type="warning" :message="$my_message"/>
</div>

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *


The reCAPTCHA verification period has expired. Please reload the page.