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>

