Передача данных в классы компонентов в Laravel


Можно передавать данные в классы компонентов, используя атрибуты HTML. Давайте для примера сделаем два атрибута:

<x-alert type="error" message="text" />
Давайте теперь получим эти данные в классе компонента. Для этого для начала объявим наши атрибуты свойствами класса компонента:

<?php
class Alert extends Component
{
public $type;
public $message;
}
?>
Теперь получим данные атрибутов в конструкторе:

<?php
class Alert extends Component
{
public $type;
public $message;

public function __construct($type, $message)
{
$this->type = $type;
$this->message = $message;
}
}
?>
Теперь можем сделать что-нибудь с полученными данными. Например, передадим их в представление:

<?php
class Alert extends Component
{
public $type;
public $message;

public function __construct($type, $message)
{
$this->type = $type;
$this->message = $message;
}

public function render()
{
return view('components.alert', [
'type' => $this->type,
'message' => $this->message,
]);
}
}
?>
Выведем их в представлении:

<div class="alert alert-{{ $type }}">
{{ $message }}
</div>